Pomoc! Nefunguje focus()

Běžná situace – potřebujete po načtení stránky najet do formuláře, který je na jejím konci a dát kurzor do prvního inputu.

Celkem snadno vyzkoumáte, že k obojímu slouží funkce focus(), která předá kurzor do daného elementu a navíc na něj naskroluje, pokud je potřeba:

$(default_el).focus();

Zdánlivě vše funguje bez problémů až do chvíle, kdy se prohlížeč rozhodne, že z neznámého důvodu nebude na daný prvek skrolovat. Pokračování textu Pomoc! Nefunguje focus()

Verzování souborů na webu

Možná se vám také již stalo, že jste na svůj web nahráli nový obrázek, upravený CSS vzhled nebo opravili nějakou JS chybu, ale uživatelům se tato změna neprojevila (nebo se projevila jen částečně).

To je způsobeno (paradoxně) tím, že máte správně nastavený server, který umožňuje prohlížeči cachovat soubory (obrázky, JS, CSS, písma, atd.) a zrychlovat tím načítání. Negativní důsledek toho je pak právě to, že pokud se jen změní obsah souboru, prohlížeč to nepozná a stále používá starou verzi, kterou má uloženou.

Existuje několik způsobů, ale všechny jsou založeny na stejném principu – musíte změnit jméno souboru a tím donutit prohlížeč ho znovu stáhnout. Nejde přitom ani tak o to, aby se změnilo skutečně jméno souboru, ale aby si prohlížeč myslel, že se změnilo (resp. prohlížeč si pak myslí, že jde o zcela nový souboru – změnu jména nijak nedetekuje). Pokračování textu Verzování souborů na webu

Vlastní selektory v jQuery

Už jsme si ukázali, jak jsou jQuery selektory pomalé. A pomalé jsou hlavně proto, že jsou hodně mocné a dokáží najít cokoliv.

A pokud nedokáží najít to, co zrovna potřebujete, můžete si dokonce napsat vlastní přesně pro svoje potřeby.

Selektory v jQuery jsou totiž prováděny funkcemi a když jQuery v selektoru najde například „:visible„, ví, že má zavolat metodu $.expr[‚:‘].visible(). Pokračování textu Vlastní selektory v jQuery

Výjimky (ne)jen pro výjimečné

Pochopit výjimky (exceptions) není nic složitého; problém ale většinou je, že ten kdo je vysvětluje (zpravidla autor knihy či učitel) je sám moc dobře nechápe a tak na vás vychrlí hromadu teorie a doufá, že je (ne)pochopíte stejně, jako on.

Poznámka: tenhle článek pojmu trochu obecněji, takže zde najdete i ukázky z PHP či Javy, které výjimky používají častěji než JavaScript. V JavaScriptu se místo třídy Exception používá prototyp Error!
Pokračování textu Výjimky (ne)jen pro výjimečné

Jak správně debugovat JavaScript?

Debugovat JavaScript většinou není problém – spustíte Nástroje pro vývojáře, Inspektor, Firebug, F12, apod. a nastavíte break-point (nebo prostě do kódu napíšete „debugger„).

Někdy ale narazíte na speciální situace, kdy není možné debugger použít (např. na mobilu, chytré televizi, apod.) nebo se debugger nechová přesně tak, jak byste očekávali.

Poznámka: následující ukázky kódu se mohou zdát nelogické, špatně navržené či dokonce chybné – ale o to přeci jde. Kdyby byl každý kód dokonale navržený a bezchybný, nebylo by ho potřeba debugovat!

Metody debugování

  1. Nejčastějším způsobem debugování javascriptu je již zmíněné vytvoření break-pointu nebo příkazu debugger, které je nejvhodnější, pokud potřebujete kód krokovat nebo se podívat na obsah nějakých proměnných v daném okamžiku.
  2. Další možností je zápis do konzole, které se hodí, pokud přímo nepotřebujete kód zastavit (nebo je to přímo nežádoucí), ale potřebujete se dozvědět o nějaké události nebo o obsahu nějaké proměnné. Moderní RIA (Rich Internet Applications) mohou do logu konzole zapisovat stejně často jako desktopové programy nebo mobilní aplikace.
  3. Třetí často používanou metodou je zobrazení alertu, které se dost podobá „brute force“ a používá se v okamžiku, kdy všechny ostatní metody selhávají a vy se potřebujete dozvědět, že došlo k nějaké události (nebo naopak nedošlo v důsledku v chyby v kódu).

Pokračování textu Jak správně debugovat JavaScript?