Unknown xtype

2012.05.15. 08:01 stack

Hasznos, ha hibás xtype esetén nem egyszerű index hibát kapunk, hanem a hibát megmagyarázó üzenetet:

Ext.create = Ext.ComponentMgr.create = function (config, defaultType) {
    if (config.render) {
        return config;
    }
    var xtype = config.xtype || defaultType;
    if (!Ext.ComponentMgr.types[xtype]) {
        throw 'Unknown xtype: ' + xtype;
    }
    return new Ext.ComponentMgr.types[xtype](config);
};

Szerencsére ExtJS4 esetén ezzel már nincsen gond, az ext-all-dev.js számtalan hasonló ellenőrzést tartalmaz.

Szólj hozzá!

Címkék: error override xtype

window.onerror vs. HTML Tidy

2012.05.13. 09:05 stack

Észrevettem, hogy az elmúlt időszakban Firefox-om alatt a window.onerror függvény nem fut le. (illetve a lekezeletlen kivételek eltűntek.) Először azt hittem, hogy valamit a kódban rontottam el, majd miután jobb ötletem nem volt, elkezdtem kikapcsolgatni a kiterjesztéseket... és lám... a HTML Validator kikapcsolása után ismét megjelentek az értesítések a lekezeletlen hibákról.

Szólj hozzá!

Címkék: firefox error napi szívás

Kivétel dobás

2012.03.01. 08:28 stack

Miután a lekezeletlen hibákat elkaptuk window.onerror segítségével, érdemes egy rövid bekezdést szentelni a kivételek dobására is.

Nem csak hiba objektumot, hanem tetszőleges értéket „eldobhatunk”.

throw new Error('Hiba'); illetve throw 'Hiba';

A legfőbb különbség, hogy az első tartalmazza, hogy melyik fájl, melyik sorában keletkezett, addig az utóbbi ilyen infókat nem tárol. (egyáltalán nem szükséges minden üzenetet becsomagolni egy Error objektumba, csupán érdemes tudni, hogy milyen következményekkel jár, ha csak stringet dobunk.)

Én az Ext.Error-t nem szoktam használni, kicsit feleslegesnek érzem.

Szólj hozzá!

Címkék: error throw

Kliens oldali hibák naplózása

2012.02.18. 15:21 stack

Előzőleg a szerver oldali hibákat jelenítettük meg kliens oldalon, most a kliens oldali hibákat naplózzuk szerver oldalon!

Először is, a lekezeletlen hibákat a window.onerror felülírásával kaphatóak el:

window.onerror = function (errorMsg, file, line) {
    alert(errorMsg + ' - ' + file + ' (' + line + ')');
    return true;
};
var a = 1;
a();

Érdekesség, míg a kattintás esemény során a hamis visszatérési érték, addig a hiba eseménynél az igaz visszatérési érték szükséges ahhoz, hogy az adott esemény ne fusson tovább.

Szólj hozzá!

Címkék: javascript log error

Szerver oldali hibák megjelenítése

2012.01.07. 10:06 stack

Ha a szerver oldali hibákat nem kezeljük le külön, akkor nehézkes az Ajax hívások között megtalálni, hogy pontosan hol is vesztettük el az irányítást. IE alatt kifejezetten rémálom.
Nem várt elem: ')' a 4816-os sorban. Ha nem használtad még kellően sokat az ExtJS-t, akkor nem biztos, hogy beugrik ebből, hogy itt bizony JSON parser hiba lépett fel. :) A JSON hiba meg nem azért történt, mert a kliens ne tudná feldolgozni az JSON adatokat, hanem mert az adatok helyett valójában egy hibaüzenet érkezett.

Vegyünk egy egyszerű példát. Két szám hányadosát szeretnénk szerver oldalon kiszámolni. (hosszú gondolkodás után ez volt a legegyszerűbb példa:)

Kliens oldalon:

Ext.Ajax.request({
    url: 'osztas.php',
    params: {
        a: 6,
        b: 2
    },
    success: function (response) {
        var t = Ext.decode(response.responseText);
        Ext.Msg.alert('', t.a + ' / ' + t.b + ' = ' + t.hanyados);
    }
});

Szerver oldalon:

die(json_encode(array(
    'a' => $_REQUEST{'a'},
    'b' => $_REQUEST{'b'},
    'hanyados' => $_REQUEST{'a'} / $_REQUEST{'b'}
)));

Tökéletesen működő példaprogram. :)
Ám, ha a második paraméter helyére nullát írunk, akkor jönnek a problémák...

Először a szerver oldalt egészítsük ki:

Szólj hozzá!

Címkék: ajax server error

ExtJS blog, mi ez?

Az ExtJS egy JavaScript keretrendszer, melyet a blog írója elfogultan a legjobbnak tart, és ez a blog olyan apróságok gyűjteménye, melyek ExtJS használata közben felmerültek, eszébe jutottak...

Címkék

ajax (4) alignto (1) állás (3) analytics (1) anchorto (1) android (4) animate (2) array (9) auto (1) back button (1) beautifier (1) beforeevent (1) benchmark (1) blur (1) budapest.js (1) button (1) canvas (1) capture (1) case sensitive (1) center (1) change (1) cikkajánló (1) class (2) closure compiler (1) collapse (1) combobox (3) comment (1) console.log (2) contextmenu (2) core (2) count (1) css (15) csv (1) dataview (1) date (4) datefield (3) datepicker (1) debug (1) doksi (1) dragdrop (1) easing (1) eclipse (1) editor (1) element (5) error (5) eval (2) event (1) fejtörő (1) field (2) fieldset (1) filter (1) firefox (4) firefox extension (2) focus (3) fonts (1) fun (1) function (1) google (2) google chrome (1) grayscale (1) grid (4) group contact (1) header (3) height (2) hidden (1) hirek (2) history (1) htaccess (1) html5 (2) htmleditor (2) https (1) icon (3) id (2) ie (2) ie6 (1) ie9 (1) iframe (3) image (2) indexof (1) javascript (1) jquery (2) jslint (2) jsmin (1) json (7) keymap (1) kipróbálom (2) könyvajánló (2) label (1) layout (1) lint (1) log (1) loop (1) magyar (2) mandelbrot (1) mask (1) math (1) maxlength (1) mistake (1) mysql (5) napi szívás (16) nem extjs (12) node (1) nth child (1) number (1) off (5) offline (1) operator (1) override (20) pagesize (1) paging (2) panel (2) php (7) picker (1) plugin (3) pozicionálás (2) preload (1) print (1) propertygrid (1) pseudo (3) readonly (2) record (1) regexp (1) replace (1) resizable (1) rotate (1) round (1) scale (1) sencha touch (2) server (1) shuffle (1) slider (1) sort (3) sortable (1) store (2) string (7) sum (1) tabchange (1) tabpanel (1) tab key (2) tdd (1) template (1) textarea (2) textfield (1) textitem (1) theme (2) throw (1) timer (1) timestamp (1) title (2) toggle (1) toolbar (6) tools (1) total count (1) transparent (1) tree (1) treenode (1) trigger (1) truncate (1) try (1) ucfirst (1) undefined (2) unique (1) unload (1) urlencode (1) utf8 (2) verzió (1) video (1) viewer (1) viewport (2) visible (2) vtype (1) window (2) xtype (1) zindex (2)

Extjs.blog.hu - RSS

Kérdés?