Archiv autora: nothrem

Debugování nativních akcí prohlížeče

Každý asi ví, že Javascriptový kód jde debugovat vložením slova debugger do kódu nebo vložením breakpointu – což je omezeno tím, že jde vložit jen do JS souboru. Věděli jste ale, že je možné zastavit vykonávání javascript v okamžiku, kdy je zavolána nativní funkce prohlížeče nezávisle na to, která část javascriptu ji vyvolala?

Pokračování textu Debugování nativních akcí prohlížeče

ES6 v kostce

Nová verze JavaScriptu zvaná ES6 (ECMAScript 6) je k dispozici již skoro 7 let a za tu dobu se již dostala do všech překladačů (např. Node.js) a i všech moderních prohlížečů.

ES6 nepřináší příliš nových funkčností ale spíše se zaměřuje na to, aby se používání stávajících funkcionalit stalo snažší a aby nebylo potřeba psát tolik kódu (podle DRY). Co všechno tedy přináší nového v porovnání s předchozí verzí?

Pokračování textu ES6 v kostce

Grunt, nebojte se automatizace

Grunt je Node.js modul (NPM), pomocí kterého můžete psát úkoly, které na rozdíl od BATCH a SHELL skriptů jsou nezávislé na systému … a hlavně je můžete psát v Javascriptu.

Nemusíte se ale bát, že se svými skromnými znalostmi jQuery nebudete vědět, jak psát skripty pro Node.JS. Úkolem Gruntu je právě co nejvíce zjednodušit nastavení úkolů, které se tak spíše podobá konfiguraci JSON souboru (i když je to JS a ne JSON).

Pokračování textu Grunt, nebojte se automatizace

Clear site: Zametáme data

Javascript i server si mohou do prohlížeče ukládat nejrůznější data, např. Cookies, LocalStorage, atd. Stejně tak prohlížeč si může uložit data stránky (styly, skripty, apod.) do cache. Je toho tolik, že ani nemůžete mít přehled o tom, co všechno má váš server v prohlížeči uživatele uloženo.

Jak ale zajistit, aby se v případě odhlášení, nasazení nové verze nebo v nejhorším případě útoku, vše vymazalo nebo vrátilo do požadovaného stavu?

Pokračování textu Clear site: Zametáme data

JWT jako prostředek pro přihlašování

Trápí vás, že během přihlašování se posílá nezabezpečené heslo na server a kdokoliv (man-in-the-middle) ho může odchytit a zneužít? Můžete využít JWT, neboli JSON Web Token, který může obsahovat čitelná data a zároveň je chráněn soukromým klíčem proti změnám. Pokud jako klíč použijete uživatelské heslo a někdo bude odposlouchávat přihlášení, nedozví se dané heslo a nebude ho moci zneužít.

Pokračování textu JWT jako prostředek pro přihlašování

Closure: Cache pomocí uzávěr v JS a PHP

Díky uzávěrám (Closure) můžete v JavaScriptu dělat celou řadu věcí, které by jinak nebyly možné. Navíc přibližně od roku 2010 již prohlížeče dokáží práci z uzávěrami optimalizovat, takže nedochází k (větším) únikům paměti (Memory Leaks) a jejich použití je (většinou) bezpečné i pro začátečníky.

A od verze PHP 5.3 můžete uzávěry (resp. anonymní funkce, které uzávěry podporují klíčovým slovem use) používat i v PHP víceméně stejným způsobem.

Jedním z případů, kdy můžete uzávěry použít k optimalizaci kódu je načítání dat z cache a databáze.

Pokračování textu Closure: Cache pomocí uzávěr v JS a PHP

Je undefined skutečně „undefined“?

V moderních prohlížečích, jako je Chrome, Firefox či Edge skutečně není hodnota proměnné undefined definována.

undefined = 1;    //vrátí 1 (ale nezmění!)
typeof undefined; //vrátí "undefined"

To je proto, že undefined již není globální proměnná (tedy window.undefined), ale jde o speciální konstrukci (podobně jako třeba return; nebo continue;). Dokonce i hodnota window.undefined je vždy nedefinována, i když do ní něco přiřadíte.

Pokračování textu Je undefined skutečně „undefined“?