{"id":6339,"date":"2020-04-24T08:56:08","date_gmt":"2020-04-24T06:56:08","guid":{"rendered":"https:\/\/igloonet.cz\/blog\/?p=6339"},"modified":"2020-07-10T08:50:04","modified_gmt":"2020-07-10T06:50:04","slug":"zrychlujeme-web-4","status":"publish","type":"post","link":"https:\/\/igloonet.cz\/blog\/zrychlujeme-web-4\/","title":{"rendered":"Zrychlujeme web:<br> CSS, cookies a&nbsp;JavaScripty"},"content":{"rendered":"<div id=\"fb-root\"><\/div>\n<p>Nau\u010dte se, jak nejl\u00e9pe p\u0159ipravit a&nbsp;doru\u010dit CSS soubory na&nbsp;web. Vyzrajte na&nbsp;zbyte\u010dn\u00e9 JavaScripty, kter\u00e9 va\u0161e str\u00e1nky akor\u00e1t zpomaluj\u00ed.<\/p>\n<p><!--more--><\/p>\n<p>V\u00edtejte u&nbsp;posledn\u00edho d\u00edlu seri\u00e1lu o&nbsp;zrychlov\u00e1n\u00ed webu na&nbsp;frontendu. U\u017e jsme si probrali:<\/p>\n<ul>\n<li><a href=\"https:\/\/igloonet.cz\/blog\/zrychlujeme-web-1\/\">obecn\u00e9 m\u011b\u0159en\u00ed rychlosti<\/a><\/li>\n<li><a href=\"https:\/\/igloonet.cz\/blog\/zrychlujeme-web-2\/\">pr\u00e1ci s&nbsp;obr\u00e1zky a&nbsp;jejich na\u010d\u00edt\u00e1n\u00ed<\/a><\/li>\n<li><a href=\"https:\/\/igloonet.cz\/blog\/zrychlujeme-web-3\/\">pr\u00e1ci s&nbsp;fonty<\/a><\/li>\n<\/ul>\n<p>Te\u010f n\u00e1s \u010dek\u00e1 asynchronn\u00ed a&nbsp;kritick\u00e9 (critical) CSS, cookies a&nbsp;lehce se pod\u00edv\u00e1me i&nbsp;na&nbsp;JavaScripty. V&nbsp;igloonetu jsme ned\u00e1vno optimalizovali e-shop <a href=\"https:\/\/www.doktorkladivo.cz\/\">Doktor Kladivo<\/a>, na&nbsp;kter\u00fd se budu ob\u010das odvol\u00e1vat s&nbsp;konkr\u00e9tn\u00edmi p\u0159\u00edklady a&nbsp;v\u00fdsledky. Pus\u0165te se do&nbsp;\u010dten\u00ed.<\/p>\n<h2>CSS Styly<\/h2>\n<p>Styly (<strong>CSS soubory<\/strong>) pat\u0159\u00ed mezi prvn\u00ed soubory, kter\u00e9 na&nbsp;webu stahujeme. Nen\u00ed divu, bez nich bysme vid\u011bli jen shluky text\u016f na&nbsp;b\u00edl\u00e9m pozad\u00ed. Proto <strong>chceme, aby se&nbsp; stahovaly co nejrychleji<\/strong> a&nbsp;m\u011bly co nejmen\u0161\u00ed velikost.<\/p>\n<p>Datovou velikost CSS <strong>jednodu\u0161e <\/strong><strong>zmen\u0161\u00edte pomoc\u00ed procesu tzv. minifikace<\/strong>, b\u011bhem kter\u00e9 se odstran\u00ed v\u0161echny nepot\u0159ebn\u00e9 mezery, zalomen\u00ed a&nbsp;form\u00e1tov\u00e1n\u00ed. Z&nbsp;fin\u00e1ln\u00edho CSS vznikne jeden dlouh\u00fd \u0159\u00e1dek, kter\u00fd je sice pro \u010dlov\u011bka ne\u010diteln\u00fd, ale prohl\u00ed\u017ee\u010di to nevad\u00ed.<\/p>\n<div id=\"attachment_6340\" style=\"width: 1110px\" class=\"wp-caption aligncenter\"><img srcset=\"https:\/\/igloonet.cz\/blog\/wp-content\/uploads\/2020\/02\/minifikace-150x150.png 150w, https:\/\/igloonet.cz\/blog\/wp-content\/uploads\/2020\/02\/minifikace-300x100.png 300w, https:\/\/igloonet.cz\/blog\/wp-content\/uploads\/2020\/02\/minifikace-1024x343.png 1024w, https:\/\/igloonet.cz\/blog\/wp-content\/uploads\/2020\/02\/minifikace.png 1100w\" sizes=\"(min-width: 1024px) 1100px, (min-width: 300px) 1024px, (min-width: 150px) 300px, 150px\" aria-describedby=\"caption-attachment-6340\" class=\"wp-image-6340 size-full\" alt width=\"1100\" height=\"368\"><p id=\"caption-attachment-6340\" class=\"wp-caption-text\">Minifikace v&nbsp;praxi<\/p><\/div>\n<p>Na e-shopu Doktor Kladivo m\u00e1me jednotliv\u00e9 komponenty napsan\u00e9 zvl\u00e1\u0161\u0165 v&nbsp;<a href=\"https:\/\/sass-lang.com\/\">SCSS <\/a>(preprocesor pro CSS) souborech, kter\u00e9 spojujeme GULP skriptem. Ten provede nezbytnou magii pro dosa\u017een\u00ed nejlep\u0161\u00ed kompatibility mezi prohl\u00ed\u017ee\u010di a&nbsp;v\u0161e spoj\u00ed do&nbsp;jednoho fin\u00e1ln\u00edho minifikovan\u00e9ho CSS.<\/p>\n<p><strong>CSS m\u00e1 jeden probl\u00e9m \u2013 prohl\u00ed\u017ee\u010d \u010dek\u00e1, a\u017e se kompletn\u011b st\u00e1hne<\/strong>, a&nbsp;teprve pak ho za\u010dne zpracov\u00e1vat. Do&nbsp;t\u00e9 doby vid\u00edme jen b\u00edlou obrazovku (to se t\u00fdk\u00e1 hlavn\u011b pomalej\u0161\u00edch p\u0159ipojen\u00ed) nebo postupn\u00e9 na\u010d\u00edt\u00e1n\u00ed webu. Vy\u0159e\u0161\u00edme to pomoc\u00ed critical CSS a&nbsp;asynchronn\u00edho nastaven\u00edm CSS&nbsp;styl\u016f.<\/p>\n<h3><strong>Critical CSS<\/strong><\/h3>\n<p><strong>P\u0159i prvn\u00edm na\u010dten\u00ed str\u00e1nky u\u017eivatel pot\u0159ebuje asi 1&nbsp;% va\u0161ich styl\u016f<\/strong> \u2013 sta\u010d\u00ed mu zobrazen\u00ed hlavi\u010dky, menu a&nbsp;dal\u0161\u00edch prvk\u016f, kter\u00e9 m\u00e1 hned vid\u011bt. <strong>Tuhle d\u016fle\u017eitou (kritickou) \u010d\u00e1st proto vy\u010dle\u0148te a&nbsp;natvrdo vlo\u017ete do&nbsp;hlavi\u010dky HTML<\/strong>. Zbytek a\u0165 se na\u010d\u00edt\u00e1 u\u017e z&nbsp;pln\u00e9ho CSS. \u00davodn\u00ed str\u00e1nka se t\u00edm zobraz\u00ed mnohem rychleji, proto\u017ee nemus\u00ed \u010dekat na&nbsp;sta\u017een\u00ed v\u0161ech&nbsp;styl\u016f.<\/p>\n<div id=\"attachment_6341\" style=\"width: 522px\" class=\"wp-caption aligncenter\"><img srcset=\"https:\/\/igloonet.cz\/blog\/wp-content\/uploads\/2020\/02\/critical-css-150x150.jpg 150w, https:\/\/igloonet.cz\/blog\/wp-content\/uploads\/2020\/02\/critical-css-300x270.jpg 300w, https:\/\/igloonet.cz\/blog\/wp-content\/uploads\/2020\/02\/critical-css.jpg 512w\" sizes=\"(min-width: 300px) 512px, (min-width: 150px) 300px, 150px\" aria-describedby=\"caption-attachment-6341\" class=\"wp-image-6341 size-full\" alt width=\"512\" height=\"460\"><p id=\"caption-attachment-6341\" class=\"wp-caption-text\">Vlevo vid\u00edte str\u00e1nku je\u0161t\u011b bez stylu a&nbsp;s&nbsp;critical CSS, vpravo je pln\u011b na\u010dten\u00e1. \u010cerven\u00e1 \u010d\u00e1ra ozna\u010duje konec okna prohl\u00ed\u017ee\u010de.<\/p><\/div>\n<p>Jak critical CSS z\u00edskat? V\u00edm o&nbsp;dvou mo\u017enostech. Pro Gulp je to <a href=\"https:\/\/github.com\/addyosmani\/critical\">Critical<\/a> a&nbsp;pro Grunt a&nbsp;je to <a href=\"https:\/\/github.com\/filamentgroup\/grunt-criticalcss\">Grunt-criticalcss<\/a>. Je jedno, kter\u00fd zp\u016fsob pou\u017eijete. Pot\u0159ebujete dostat inline CSS, kter\u00fd pot\u00e9 vlo\u017e\u00edte do&nbsp;hlavi\u010dky va\u0161eho HTML.<\/p>\n<pre>&lt;style&gt;\n\/* kritick\u00e9 inline css styly *\/\n&lt;\/style&gt;\n\n&lt;script&gt;\n\/* va\u0161e asynchronn\u00ed styly.css, pov\u00edme si d\u00e1le *\/\n&lt;\/script&gt;\n<\/pre>\n<p><strong>Critical CSS v\u00e1m pom\u016f\u017ee p\u0159i prvn\u00ed n\u00e1v\u0161t\u011bv\u011b webu, ale pak str\u00e1nky jen zpomaluje<\/strong>, proto\u017ee bude zobrazovat n\u011bco, co u\u017e m\u00e1te sta\u017een\u00e9. <strong>Kolegov\u00e9 na&nbsp;backendu mi proto nachystali funkci <code>$loadCritical<\/code>, kter\u00e1 u\u017eivateli vytvo\u0159\u00ed cookies s&nbsp;hodnotou n\u00e1zvu sta\u017een\u00e9ho CSS souboru i&nbsp;s&nbsp;hashem<\/strong>. Pokud na&nbsp;webu neprob\u011bhne \u017e\u00e1dn\u00e1 zm\u011bna ve&nbsp;stylech, a&nbsp;u\u017eivatel ho nav\u0161t\u00edv\u00ed podruh\u00e9, n\u00e1zev souboru na&nbsp;serveru i&nbsp;v&nbsp;cookies bude m\u00edt stejn\u00fd. Critical CSS se d\u00edky tomu nezobraz\u00ed a&nbsp;ani se nest\u00e1hne nov\u00e9 CSS (viz d\u00e1le). Pokud jsme n\u011bjakou zm\u011bnu v&nbsp;CSS ud\u011blali, critical CSS se znovu zobraz\u00ed, a&nbsp;tak\u00e9 se st\u00e1hnou nov\u00e9 zm\u011bn\u011bn\u00e9 CSS soubory.<\/p>\n<p>Nev\u00fdhoda critical CSS je v&nbsp;tom, \u017ee&nbsp;pokud ho nem\u00e1te pln\u011b automatizovan\u00e9, anebo d\u011bl\u00e1te \u010dasto zm\u011bny v&nbsp;kritick\u00e9 oblasti, je hodn\u011b pracn\u00e9 a&nbsp;slo\u017eit\u00e9 na&nbsp;\u00fadr\u017ebu. Pak z\u00e1le\u017e\u00ed, jestli se to vyplat\u00ed.<\/p>\n<pre>&lt;style type=\"text\/css\" n:syntax=off n:if=$loadCritical&gt;\nhtml{-webkit-font-smoothing:antialiased;background-color:#fff;color:#343943;height:100%;line-height:1.15} ... pokra\u010dov\u00e1n\u00ed stylu\n&lt;\/style&gt;\n<\/pre>\n<p><i>$loadCritical n\u00e1m zajist\u00ed, \u017ee&nbsp;se critical CSS zobraz\u00ed jen p\u0159i prvn\u00ed n\u00e1v\u0161t\u011bv\u011b webu.<\/i><\/p>\n<h3><strong>Asynchronn\u00ed na\u010d\u00edt\u00e1n\u00ed CSS<\/strong><\/h3>\n<p>Pro\u010d \u0159e\u0161it asynchronn\u00ed na\u010d\u00edt\u00e1n\u00ed?<strong> Ne\u017e se CSS st\u00e1hne, u\u017eivatel vid\u00ed pouze b\u00edlou obrazovku. To samoz\u0159ejm\u011b nechceme.<\/strong><\/p>\n<p>Na asynchronn\u00ed CSS pou\u017e\u00edv\u00e1me JS knihovnu od&nbsp;filamentgroup s&nbsp;n\u00e1zvem <a href=\"https:\/\/github.com\/filamentgroup\/loadCSS\">loadCSS<\/a>. Na&nbsp;webu m\u00e1me dva CSS soubory \u2013 jeden pouze na&nbsp;ikonky (moc \u010dasto je nem\u011bn\u00edme, proto soubor zvl\u00e1\u0161\u0165), druh\u00fd na&nbsp;v\u0161e ostatn\u00ed. Kv\u016fli paraleln\u00edmu stahov\u00e1n\u00ed pomoc\u00ed HTTP\/2 by bylo lep\u0161\u00ed v\u0161e rozd\u011blit na&nbsp;je\u0161t\u011b v\u00edce soubor\u016f podle webov\u00fdch komponent. Doporu\u010duju postupovat podle <a href=\"https:\/\/github.com\/filamentgroup\/loadCSS\">n\u00e1vodu<\/a>, n\u00e1\u0161 k\u00f3d m\u00e1 ale m\u00edrn\u00e9 zlep\u0161ov\u00e1ky o&nbsp;cookies (viz&nbsp;n\u00ed\u017ee).<\/p>\n<p>Stejn\u011b jako u&nbsp;critical CSS plat\u00ed, \u017ee&nbsp;pokud p\u0159ijdete na&nbsp;web a&nbsp;CSS soubory u\u017e m\u00e1te sta\u017een\u00e9, nemus\u00edte v\u016fbec spou\u0161t\u011bt posledn\u00ed JavaScript (podm\u00ednka <code>$loadCritical<\/code> ho vy\u0159ad\u00ed) a&nbsp;vykon\u00e1vat cel\u00fd proces uvnit\u0159. Pokud CSS je\u0161t\u011b nem\u00e1te, posledn\u00ed JavaScript se spust\u00ed, a&nbsp;pom\u016f\u017ee prohl\u00ed\u017ee\u010d\u016fm, kter\u00e9 neum\u00ed funkci <strong>preload<\/strong> (preload p\u0159edp\u0159iprav\u00ed data, ani\u017e by blokoval vykreslen\u00ed zbytku webu, <a href=\"https:\/\/igloonet.cz\/blog\/zrychlujeme-web-3\/\">podrobn\u011bji jsem o&nbsp;n\u011bm psal v&nbsp;minul\u00e9m d\u00edlu<\/a>).<\/p>\n<p>Poj\u010fme si rozebrat, co d\u011bl\u00e1 upraven\u00fd link oproti klasick\u00e9mu z\u00e1pisu:<\/p>\n<ul>\n<li><code>rel<\/code> \u2013 podle toho, zda u\u017e m\u00e1te sta\u017een\u00e9 CSS, se d\u00e1 preload nebo stylesheet;<\/li>\n<li><code>href<\/code> \u2013 odkaz na&nbsp;CSS soubor i&nbsp;s&nbsp;hashem;<\/li>\n<li><code>as<\/code> \u2013 nastavte, co se bude stahovat (jinak se v\u0161ude p\u0159i\u0159ad\u00ed minim\u00e1ln\u00ed priorita, a&nbsp;to nechcete);<\/li>\n<li><code>onload<\/code> \u2013 po sta\u017een\u00ed nahrad\u00ed preload v&nbsp;<code>rel<\/code> za stylesheet, a&nbsp;t\u00edm zobraz\u00ed CSS. M\u00e1me zde je\u0161t\u011b ochrannou pom\u016fcku <code>this.onload=null<\/code><i>, <\/i>proto\u017ee n\u011bkter\u00e9 prohl\u00ed\u017ee\u010de by po dokon\u010den\u00ed na\u010d\u00edt\u00e1n\u00ed mohly za\u010d\u00edt znovu na\u010d\u00edtat.<\/li>\n<\/ul>\n<pre>&lt;style type=\"text\/css\" n:syntax=off n:if=$loadCritical&gt;\nCritical CSS\n&lt;\/style&gt;\n\n\/* asynchronn\u00ed css styly *\/\n&lt;link rel=\"{$loadCritical ? preload : stylesheet}\" href=\"{versionedFile '\/css\/styles.css'}\" as=\"style\" onload=\"this.onload=null;this.rel='stylesheet'\"&gt;\n&lt;noscript&gt;&lt;link rel=\"stylesheet\" href=\"{versionedFile '\/css\/styles.css'}\"&gt;&lt;\/noscript&gt;\n\n&lt;link rel=\"{$loadCritical ? preload : stylesheet}\" href=\"{versionedFile '\/css\/icons.css'}\" as=\"style\" onload=\"this.onload=null;this.rel='stylesheet'\"&gt;\n&lt;noscript&gt;&lt;link rel=\"stylesheet\" href=\"{versionedFile '\/css\/icons.css'}\"&gt;&lt;\/noscript&gt;\n\n\/* javascript na asynchronn\u00ed styly *\/\n&lt;script n:syntax=\"double\" n:if=$loadCritical&gt;\n!function(t) pokracovani scriptu d\u00e1le\n&lt;\/script&gt;\n<\/pre>\n<p>Se spr\u00e1vn\u00fdm k\u00f3dem:<\/p>\n<ul>\n<li>eliminujete b\u00edlou obrazovku p\u0159i na\u010d\u00edt\u00e1n\u00ed CSS soubor\u016f;<\/li>\n<li>eliminujete blokov\u00e1n\u00ed ostatn\u00edch prvk\u016f d\u00e1le na&nbsp;str\u00e1nce t\u00edm, \u017ee&nbsp;se CSS soubory stahuj\u00ed na&nbsp;pozad\u00ed;<\/li>\n<li>pomoci cookies eliminujete op\u011btovn\u00e9 na\u010d\u00edt\u00e1n\u00ed critical CSS a&nbsp;JavaScriptu na&nbsp;asynchronn\u00ed CSS, t\u00edm trochu urychl\u00edte na\u010d\u00edt\u00e1n\u00ed.<\/li>\n<\/ul>\n<p>M\u016f\u017ee se st\u00e1t, \u017ee&nbsp;v\u00e1m bude Google v&nbsp;<a href=\"https:\/\/developers.google.com\/speed\/pagespeed\/insights\/?hl=cs\">PageSpeed Insights<\/a> ps\u00e1t, \u017ee&nbsp;CSS soubory blokuj\u00ed na\u010d\u00edt\u00e1ni zbytku webu. Nen\u00ed to pravda, u\u017eivatel m\u00e1 soubory u\u017e v&nbsp;cache. M\u00e1m dojem, \u017ee&nbsp;tuhle chybu u\u017e opravili, ale rad\u011bji to berte v&nbsp;potaz.<\/p>\n<h2>JavaScripty<\/h2>\n<p><strong>JavaScripty jsou nejv\u011bt\u0161\u00ed brzdou webu<\/strong>, zvl\u00e1\u0161\u0165 ty od&nbsp;t\u0159et\u00edch stran. \u010c\u00edm m\u00e9n\u011b se jich p\u0159i startu spust\u00ed, t\u00edm&nbsp;l\u00e9pe.<\/p>\n<p>Aktu\u00e1ln\u011b m\u00e1me na&nbsp;webu Doktor Kladivo v&nbsp;pl\u00e1nu p\u0159epsat JavaScript soubory do&nbsp;modern\u011bj\u0161\u00edho a&nbsp;rychlej\u0161\u00edho z\u00e1pisu, nicm\u00e9n\u011b jsme se z&nbsp;aktu\u00e1ln\u011b pou\u017eit\u00fdch sna\u017eili vy\u017ed\u00edmat maximum. Jak jsme zhruba postupovali? <strong>Pro\u0161li jsme si ka\u017ed\u00fd JS soubor a&nbsp;posoudili, jestli ho je\u0161t\u011b pou\u017e\u00edv\u00e1me<\/strong>. Bylo tam t\u0159eba p\u00e1r zastaral\u00fdch knihoven na&nbsp;sjednocen\u00ed fungov\u00e1n\u00ed n\u011bkter\u00fdch vlastnost\u00ed prohl\u00ed\u017ee\u010d\u016f nebo na&nbsp;\u0159e\u0161en\u00ed nov\u00fdch vlastnost\u00ed CSS, kter\u00e9 tehdy prohl\u00ed\u017ee\u010de neum\u011bly \u2013 vyhodili jsme je. D\u00e1le jsme v\u0161echny knihovny aktualizovali na&nbsp;nov\u00e9 verze, n\u011bkter\u00e9 jsou l\u00e9pe napsan\u00e9, men\u0161\u00ed, a&nbsp;jsou v&nbsp;nich opraven\u00e9 chyby. Z&nbsp;<strong>640&nbsp;kB <\/strong>jsme se nap\u0159\u00edklad dostali na&nbsp;<strong>504&nbsp;kB, <\/strong>co\u017e je \u00faspora <strong>22&nbsp;%<\/strong>.<\/p>\n<p>Tak\u00e9 jsme <strong>nastavili, aby se n\u011bkter\u00e9 JS generovaly jen na&nbsp;ur\u010dit\u00fdch str\u00e1nk\u00e1ch<\/strong>. JS pro galerii produkt\u016f je nap\u0159\u00edklad zbyte\u010dn\u00e9 vkl\u00e1dat do&nbsp;str\u00e1nky glob\u00e1ln\u011b, nov\u011b ho p\u0159id\u00e1v\u00e1me jen do&nbsp;detailu produktu p\u0159es <cite>PHP presenter<\/cite>. Z&nbsp;PHP kompil\u00e1toru jsme je\u0161t\u011b vy\u0159adili v\u0161echny JS, kter\u00e9 se pou\u017e\u00edvaj\u00ed na&nbsp;cel\u00e9m webu. Do&nbsp;str\u00e1nky je nov\u011b vkl\u00e1d\u00e1me jednotliv\u011b, abychom vyu\u017eili paraleln\u00ed stahov\u00e1n\u00ed a&nbsp;zpracov\u00e1n\u00ed v&nbsp;HTTP\/2.<\/p>\n<p>Z <code>&lt;head&gt;<\/code> tagu jsme tak\u00e9 odstranili v\u0161echny JS nepot\u0159ebn\u00e9 pro start webu. Z\u016fstalo tam jen to nejnutn\u011bj\u0161\u00ed: asynchronn\u00ed na\u010d\u00edt\u00e1n\u00ed CSS a&nbsp;Google Tag Manager. Ostatn\u00ed \u0161lo na&nbsp;konec <code>&lt;body&gt;<\/code> tagu.<\/p>\n<p><strong>Co m\u00e1me na&nbsp;konci <code>&lt;body&gt;<\/code> tagu<\/strong>? Postupn\u011b v&nbsp;tomhle po\u0159ad\u00ed:<\/p>\n<ol>\n<li>Lazyload JavaScript na&nbsp;postupn\u00e9 na\u010d\u00edt\u00e1n\u00ed obr\u00e1zk\u016f (<a href=\"https:\/\/igloonet.cz\/blog\/zrychlujeme-web-2\/\">podrobn\u011bji jsem o&nbsp;n\u011bm psal v&nbsp;d\u00edlu o&nbsp;obr\u00e1zc\u00edch<\/a>)<\/li>\n<li>Jednotliv\u00e9 JavaScripty, kter\u00e9 se pou\u017e\u00edvaj\u00ed glob\u00e1ln\u011b<\/li>\n<li>Vygenerovan\u00e9 a&nbsp;spojen\u00e9 JavaScripty pro konkr\u00e9tn\u00ed str\u00e1nky (z&nbsp;jednotliv\u00fdch <cite>presenter\u016f<\/cite> v&nbsp;PHP backendu). Nap\u0159\u00edklad JS pro galerii produkt\u016f.<\/li>\n<li>Dal\u0161\u00ed lazyload JavaScript pro specifick\u00e9 bloky na&nbsp;webu (slidery v\u00fdrobc\u016f, prvky doporu\u010den\u00fdch produkt\u016f), kter\u00e9 jsou n\u00ed\u017ee na&nbsp;webu, a&nbsp;nepot\u0159ebuj\u00ed okam\u017eit\u00e9 na\u010dten\u00ed.<\/li>\n<li>Facebook skript pro marketing.<\/li>\n<li>Webov\u00e9 notifikace, kter\u00e9 spou\u0161t\u00edme s&nbsp;parametrem <code>defer<\/code>. Ten se spust\u00ed a\u017e po v\u0161ech skriptech, ale zachov\u00e1v\u00e1 po\u0159ad\u00ed spou\u0161t\u011bn\u00ed.<\/li>\n<li>Cookie li\u0161ta.<\/li>\n<li>Defer skript na&nbsp;chatovac\u00ed okno, kter\u00e9 nen\u00ed pot\u0159eba v&nbsp;prvn\u00edch sekund\u00e1ch.<\/li>\n<\/ol>\n<p>M\u00edsto jednoho velk\u00e9ho souboru, kter\u00fd by blokoval str\u00e1nku, rad\u011bji postupn\u011b zpracov\u00e1v\u00e1me v\u00edce men\u0161\u00edch. Do&nbsp;budoucna pl\u00e1nujeme p\u0159ev\u00e9st JavaScripty na&nbsp;n\u011bjak\u00fd JavaScript kompil\u00e1tor se spr\u00e1vou bal\u00ed\u010dku.<\/p>\n<p>Postupem \u010dasu chceme vy\u0159adit kompletn\u011b cel\u00e9 jQuery a&nbsp;p\u0159epsat JS soubory do&nbsp;modern\u011bj\u0161\u00edho z\u00e1pisu, aby se l\u00e9pe spravovaly. To aktu\u00e1ln\u011b nebylo mo\u017en\u00e9, proto\u017ee je nap\u0159\u00edklad soubor X&nbsp;z\u00e1visl\u00fd na&nbsp;jin\u00e9m souboru, a&nbsp;ve&nbsp;v\u00fdsledku by to znamenalo p\u0159eps\u00e1n\u00ed velk\u00e9 \u010d\u00e1sti JS. Nen\u00ed to z\u00e1le\u017eitost na&nbsp;5&nbsp;minut, chce to hodn\u011b testovat, zkou\u0161et atp. Jedna chyba v\u00e1m m\u016f\u017ee shodit cel\u00fd JS, a&nbsp;t\u00edm i&nbsp;n\u00e1vazn\u00e9 v\u011bci (filtry, vkl\u00e1d\u00e1n\u00ed do&nbsp;ko\u0161\u00edku atd).<\/p>\n<p>A to je prozat\u00edm konec. Cel\u00e9 odv\u011btv\u00ed kolem rychlosti webu se teprve formuje a&nbsp;na&nbsp;n\u011bjak\u00e9 standardy se teprve \u010dek\u00e1. Uvid\u00edme, jak to bude za p\u00e1r let - mo\u017en\u00e1 se t\u011bmhle rad\u00e1m budeme sm\u00e1t a&nbsp;v\u0161e bude jinak :). D\u011bkuji za p\u0159e\u010dten\u00ed cel\u00e9ho \u010dty\u0159d\u00edln\u00e9ho seri\u00e1lu, pokud m\u00e1te jak\u00e9koliv dotazy nebo zaj\u00edmav\u00e9 poznatky, pod\u011blte se o&nbsp;n\u011b v&nbsp;koment\u00e1\u0159\u00edch. T\u0159eba v\u011bci \u0159e\u0161\u00edte \u00fapln\u011b jin\u00fdm zp\u016fsobem, moc r\u00e1d se o&nbsp;n\u011bm dozv\u00edm. Koho by zaj\u00edmaly p\u0159esn\u00e9 \u010dasy zrychlen\u00ed e-shopu Doktor Kladivo, naleznete je <a href=\"https:\/\/igloonet.cz\/blog\/zrychlujeme-web-1\/\">v&nbsp;prvn\u00edm d\u00edle<\/a>.<\/p>\n\n\t\t<script>var e = {type:\"double\", dml:\"84443\", fc1:\"8ddb53726a5ae061\",fc2:\"f76152329ad32359\", dt:\"13486\" , returnUrl:\"https:\/\/igloonet.cz\/blog\" , autosuggest:true, fromEmail:\"marketing@igloonet.cz\", fromName:\"igloonet \"};window.e914a6dj9=e;s=document.getElementsByTagName(\"script\")[0];qc=document.createElement(\"script\");qc.src=\"\/\/static.mailkit.eu\/_system\/subform.js\";qc.setAttribute(\"dvar\", \"e914a6dj9\");s.parentNode.insertBefore(qc,s);<\/script>\t\t\n\t\t<div class=\"mailkit_instance\">\n\t\t\t<form method=\"POST\" data-id=\"e914a6dj9\" class=\"newsletter-form\" id=\"newsletter-form\">\n\t\t\t    <div class=\"hr-wrap\"><hr><\/div>\n\t            <h2>U\u017e jste se p\u0159ihl\u00e1sili k&nbsp;odb\u011bru?<\/h2>\n\t            <p>Seri\u00e1l o&nbsp;zrychlen\u00ed webu sice kon\u010d\u00ed, ale chyst\u00e1me dal\u0161\u00ed skv\u011bl\u00e9 \u010dl\u00e1nky. Zadejte sv\u016fj e-mail, a&nbsp;\u017e\u00e1dn\u00fd v\u00e1m neunikne.<\/p>\n\t\t\t\t\n\t\t\t\t<div class=\"newsletter-form__email\">\n\t                <div class=\"newsletter-form__input-group\">\n\t                    <label for=\"first_name_inline\">K\u0159estn\u00ed jm\u00e9no<\/label><input type=\"text\" name=\"first_name\" id=\"first_name_inline\" value required>\n\t                <\/div>\n\t\t\t\t    \n\t\t\t\t    <div class=\"newsletter-form__input-group\">\n\t\t\t\t\t    <label for=\"email_inline\">E-mail<\/label><input type=\"text\" name=\"email\" id=\"email_inline\" value required>\n\t\t\t\t    <\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\n\t\t\t\t<div class=\"mailkit_submit newsletter-form__button--wrapper\">\n\t\t\t\t    <button type=\"submit\" class=\"newsletter-form__button\" id=\"newsletter-form__button\">P\u0159ihl\u00e1sit<\/button>\n\t\t\t\t    <input type=\"hidden\" name=\"_do\" value=\"newsletterForm-submit\">\n\t\t\t\t<\/div>\n                                <div><br>Odesl\u00e1n\u00edm formul\u00e1\u0159e souhlas\u00edte se <a href=\"\/ochrana-osobnich-udaju\">zpracov\u00e1n\u00edm osobn\u00edch \u00fadaj\u016f<\/a>.<\/div>\n\t\t\t<\/form>\n\t\t<\/div>\n\t\t\n\t\t<div class=\"newsletter-form__alert\" id=\"newsletter-form__alert\">\n\t\t\tByl v\u00e1m odesl\u00e1n potvrzovac\u00ed e-mail.&nbsp;<\/div>\n\t\n","protected":false},"excerpt":{"rendered":"<p>Nau\u010dte se, jak nejl\u00e9pe p\u0159ipravit a&nbsp;doru\u010dit CSS soubory na&nbsp;web. Vyzrajte na&nbsp;zbyte\u010dn\u00e9 JavaScripty, kter\u00e9 va\u0161e str\u00e1nky akor\u00e1t zpomaluj\u00ed.<\/p>\n","protected":false},"author":42,"featured_media":6719,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"wp_typography_post_enhancements_disabled":false,"footnotes":""},"categories":[71],"tags":[34,176,180,246],"class_list":["post-6339","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-vyvoj","tag-css","tag-frontend","tag-javascript","tag-zrychleni-webu"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v26.7 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Zrychlujeme web: CSS, cookies a JavaScripty | igloonet blog<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/igloonet.cz\/blog\/zrychlujeme-web-4\/\" \/>\n<meta property=\"og:locale\" content=\"cs_CZ\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Vyzrajte na zbyte\u010dn\u00e9 JavaScripty\" \/>\n<meta property=\"og:description\" content=\"JavaScripty jsou nejv\u011bt\u0161\u00ed brzdou webu. Co s t\u00edm?\" \/>\n<meta property=\"og:url\" content=\"https:\/\/igloonet.cz\/blog\/zrychlujeme-web-4\/\" \/>\n<meta property=\"og:site_name\" content=\"igloonet blog\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/igloonet\" \/>\n<meta property=\"article:published_time\" content=\"2020-04-24T06:56:08+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2020-07-10T06:50:04+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/igloonet.cz\/blog\/wp-content\/uploads\/2020\/04\/8.png\" \/>\n\t<meta property=\"og:image:width\" content=\"1200\" \/>\n\t<meta property=\"og:image:height\" content=\"628\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Luk\u00e1\u0161 Pto\u0161ek\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@igloonet\" \/>\n<meta name=\"twitter:site\" content=\"@igloonet\" \/>\n<meta name=\"twitter:label1\" content=\"Napsal(a)\" \/>\n\t<meta name=\"twitter:data1\" content=\"Luk\u00e1\u0161 Pto\u0161ek\" \/>\n\t<meta name=\"twitter:label2\" content=\"Odhadovan\u00e1 doba \u010dten\u00ed\" \/>\n\t<meta name=\"twitter:data2\" content=\"10 minut\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/igloonet.cz\/blog\/zrychlujeme-web-4\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/igloonet.cz\/blog\/zrychlujeme-web-4\/\"},\"author\":{\"name\":\"Luk\u00e1\u0161 Pto\u0161ek\",\"@id\":\"https:\/\/igloonet.cz\/blog\/#\/schema\/person\/a812735f33c06a10323ebc76473770a6\"},\"headline\":\"Zrychlujeme web: CSS, cookies a&nbsp;JavaScripty\",\"datePublished\":\"2020-04-24T06:56:08+00:00\",\"dateModified\":\"2020-07-10T06:50:04+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/igloonet.cz\/blog\/zrychlujeme-web-4\/\"},\"wordCount\":1803,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/igloonet.cz\/blog\/#organization\"},\"image\":{\"@id\":\"https:\/\/igloonet.cz\/blog\/zrychlujeme-web-4\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/igloonet.cz\/blog\/wp-content\/uploads\/2020\/04\/8.png\",\"keywords\":[\"CSS\",\"frontend\",\"JavaScript\",\"zrychlen\u00ed webu\"],\"articleSection\":[\"V\u00fdvoj\"],\"inLanguage\":\"cs\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/igloonet.cz\/blog\/zrychlujeme-web-4\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/igloonet.cz\/blog\/zrychlujeme-web-4\/\",\"url\":\"https:\/\/igloonet.cz\/blog\/zrychlujeme-web-4\/\",\"name\":\"Zrychlujeme web: CSS, cookies a JavaScripty | igloonet blog\",\"isPartOf\":{\"@id\":\"https:\/\/igloonet.cz\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/igloonet.cz\/blog\/zrychlujeme-web-4\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/igloonet.cz\/blog\/zrychlujeme-web-4\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/igloonet.cz\/blog\/wp-content\/uploads\/2020\/04\/8.png\",\"datePublished\":\"2020-04-24T06:56:08+00:00\",\"dateModified\":\"2020-07-10T06:50:04+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/igloonet.cz\/blog\/zrychlujeme-web-4\/#breadcrumb\"},\"inLanguage\":\"cs\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/igloonet.cz\/blog\/zrychlujeme-web-4\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"cs\",\"@id\":\"https:\/\/igloonet.cz\/blog\/zrychlujeme-web-4\/#primaryimage\",\"url\":\"https:\/\/igloonet.cz\/blog\/wp-content\/uploads\/2020\/04\/8.png\",\"contentUrl\":\"https:\/\/igloonet.cz\/blog\/wp-content\/uploads\/2020\/04\/8.png\",\"width\":1200,\"height\":628},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/igloonet.cz\/blog\/zrychlujeme-web-4\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"V\u00fdvoj\",\"item\":\"https:\/\/igloonet.cz\/blog\/rubriky\/vyvoj\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Zrychlujeme web: CSS, cookies a&nbsp;JavaScripty\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/igloonet.cz\/blog\/#website\",\"url\":\"https:\/\/igloonet.cz\/blog\/\",\"name\":\"igloonet blog\",\"description\":\"\",\"publisher\":{\"@id\":\"https:\/\/igloonet.cz\/blog\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/igloonet.cz\/blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"cs\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/igloonet.cz\/blog\/#organization\",\"name\":\"igloonet\",\"url\":\"https:\/\/igloonet.cz\/blog\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"cs\",\"@id\":\"https:\/\/igloonet.cz\/blog\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/igloonet.cz\/blog\/wp-content\/uploads\/2015\/07\/RGB_LVPC_igloonet.png\",\"contentUrl\":\"https:\/\/igloonet.cz\/blog\/wp-content\/uploads\/2015\/07\/RGB_LVPC_igloonet.png\",\"width\":650,\"height\":465,\"caption\":\"igloonet\"},\"image\":{\"@id\":\"https:\/\/igloonet.cz\/blog\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/www.facebook.com\/igloonet\",\"https:\/\/x.com\/igloonet\",\"https:\/\/instagram.com\/igloonet\/\",\"https:\/\/www.linkedin.com\/company\/igloonet\"]},{\"@type\":\"Person\",\"@id\":\"https:\/\/igloonet.cz\/blog\/#\/schema\/person\/a812735f33c06a10323ebc76473770a6\",\"name\":\"Luk\u00e1\u0161 Pto\u0161ek\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"cs\",\"@id\":\"https:\/\/igloonet.cz\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/2854b00258f0cdf1aa6b521b4f6452238187e8c09bbbf7460685c9bb74a09566?s=96&d=retro&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/2854b00258f0cdf1aa6b521b4f6452238187e8c09bbbf7460685c9bb74a09566?s=96&d=retro&r=g\",\"caption\":\"Luk\u00e1\u0161 Pto\u0161ek\"},\"url\":\"https:\/\/igloonet.cz\/blog\/author\/ptosek\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Zrychlujeme web: CSS, cookies a JavaScripty | igloonet blog","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/igloonet.cz\/blog\/zrychlujeme-web-4\/","og_locale":"cs_CZ","og_type":"article","og_title":"Vyzrajte na zbyte\u010dn\u00e9 JavaScripty","og_description":"JavaScripty jsou nejv\u011bt\u0161\u00ed brzdou webu. Co s t\u00edm?","og_url":"https:\/\/igloonet.cz\/blog\/zrychlujeme-web-4\/","og_site_name":"igloonet blog","article_publisher":"https:\/\/www.facebook.com\/igloonet","article_published_time":"2020-04-24T06:56:08+00:00","article_modified_time":"2020-07-10T06:50:04+00:00","og_image":[{"width":1200,"height":628,"url":"https:\/\/igloonet.cz\/blog\/wp-content\/uploads\/2020\/04\/8.png","type":"image\/png"}],"author":"Luk\u00e1\u0161 Pto\u0161ek","twitter_card":"summary_large_image","twitter_creator":"@igloonet","twitter_site":"@igloonet","twitter_misc":{"Napsal(a)":"Luk\u00e1\u0161 Pto\u0161ek","Odhadovan\u00e1 doba \u010dten\u00ed":"10 minut"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/igloonet.cz\/blog\/zrychlujeme-web-4\/#article","isPartOf":{"@id":"https:\/\/igloonet.cz\/blog\/zrychlujeme-web-4\/"},"author":{"name":"Luk\u00e1\u0161 Pto\u0161ek","@id":"https:\/\/igloonet.cz\/blog\/#\/schema\/person\/a812735f33c06a10323ebc76473770a6"},"headline":"Zrychlujeme web: CSS, cookies a&nbsp;JavaScripty","datePublished":"2020-04-24T06:56:08+00:00","dateModified":"2020-07-10T06:50:04+00:00","mainEntityOfPage":{"@id":"https:\/\/igloonet.cz\/blog\/zrychlujeme-web-4\/"},"wordCount":1803,"commentCount":0,"publisher":{"@id":"https:\/\/igloonet.cz\/blog\/#organization"},"image":{"@id":"https:\/\/igloonet.cz\/blog\/zrychlujeme-web-4\/#primaryimage"},"thumbnailUrl":"https:\/\/igloonet.cz\/blog\/wp-content\/uploads\/2020\/04\/8.png","keywords":["CSS","frontend","JavaScript","zrychlen\u00ed webu"],"articleSection":["V\u00fdvoj"],"inLanguage":"cs","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/igloonet.cz\/blog\/zrychlujeme-web-4\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/igloonet.cz\/blog\/zrychlujeme-web-4\/","url":"https:\/\/igloonet.cz\/blog\/zrychlujeme-web-4\/","name":"Zrychlujeme web: CSS, cookies a JavaScripty | igloonet blog","isPartOf":{"@id":"https:\/\/igloonet.cz\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/igloonet.cz\/blog\/zrychlujeme-web-4\/#primaryimage"},"image":{"@id":"https:\/\/igloonet.cz\/blog\/zrychlujeme-web-4\/#primaryimage"},"thumbnailUrl":"https:\/\/igloonet.cz\/blog\/wp-content\/uploads\/2020\/04\/8.png","datePublished":"2020-04-24T06:56:08+00:00","dateModified":"2020-07-10T06:50:04+00:00","breadcrumb":{"@id":"https:\/\/igloonet.cz\/blog\/zrychlujeme-web-4\/#breadcrumb"},"inLanguage":"cs","potentialAction":[{"@type":"ReadAction","target":["https:\/\/igloonet.cz\/blog\/zrychlujeme-web-4\/"]}]},{"@type":"ImageObject","inLanguage":"cs","@id":"https:\/\/igloonet.cz\/blog\/zrychlujeme-web-4\/#primaryimage","url":"https:\/\/igloonet.cz\/blog\/wp-content\/uploads\/2020\/04\/8.png","contentUrl":"https:\/\/igloonet.cz\/blog\/wp-content\/uploads\/2020\/04\/8.png","width":1200,"height":628},{"@type":"BreadcrumbList","@id":"https:\/\/igloonet.cz\/blog\/zrychlujeme-web-4\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"V\u00fdvoj","item":"https:\/\/igloonet.cz\/blog\/rubriky\/vyvoj\/"},{"@type":"ListItem","position":2,"name":"Zrychlujeme web: CSS, cookies a&nbsp;JavaScripty"}]},{"@type":"WebSite","@id":"https:\/\/igloonet.cz\/blog\/#website","url":"https:\/\/igloonet.cz\/blog\/","name":"igloonet blog","description":"","publisher":{"@id":"https:\/\/igloonet.cz\/blog\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/igloonet.cz\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"cs"},{"@type":"Organization","@id":"https:\/\/igloonet.cz\/blog\/#organization","name":"igloonet","url":"https:\/\/igloonet.cz\/blog\/","logo":{"@type":"ImageObject","inLanguage":"cs","@id":"https:\/\/igloonet.cz\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/igloonet.cz\/blog\/wp-content\/uploads\/2015\/07\/RGB_LVPC_igloonet.png","contentUrl":"https:\/\/igloonet.cz\/blog\/wp-content\/uploads\/2015\/07\/RGB_LVPC_igloonet.png","width":650,"height":465,"caption":"igloonet"},"image":{"@id":"https:\/\/igloonet.cz\/blog\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/igloonet","https:\/\/x.com\/igloonet","https:\/\/instagram.com\/igloonet\/","https:\/\/www.linkedin.com\/company\/igloonet"]},{"@type":"Person","@id":"https:\/\/igloonet.cz\/blog\/#\/schema\/person\/a812735f33c06a10323ebc76473770a6","name":"Luk\u00e1\u0161 Pto\u0161ek","image":{"@type":"ImageObject","inLanguage":"cs","@id":"https:\/\/igloonet.cz\/blog\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/2854b00258f0cdf1aa6b521b4f6452238187e8c09bbbf7460685c9bb74a09566?s=96&d=retro&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/2854b00258f0cdf1aa6b521b4f6452238187e8c09bbbf7460685c9bb74a09566?s=96&d=retro&r=g","caption":"Luk\u00e1\u0161 Pto\u0161ek"},"url":"https:\/\/igloonet.cz\/blog\/author\/ptosek\/"}]}},"amp_enabled":true,"_links":{"self":[{"href":"https:\/\/igloonet.cz\/blog\/wp-json\/wp\/v2\/posts\/6339","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/igloonet.cz\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/igloonet.cz\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/igloonet.cz\/blog\/wp-json\/wp\/v2\/users\/42"}],"replies":[{"embeddable":true,"href":"https:\/\/igloonet.cz\/blog\/wp-json\/wp\/v2\/comments?post=6339"}],"version-history":[{"count":30,"href":"https:\/\/igloonet.cz\/blog\/wp-json\/wp\/v2\/posts\/6339\/revisions"}],"predecessor-version":[{"id":6468,"href":"https:\/\/igloonet.cz\/blog\/wp-json\/wp\/v2\/posts\/6339\/revisions\/6468"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/igloonet.cz\/blog\/wp-json\/wp\/v2\/media\/6719"}],"wp:attachment":[{"href":"https:\/\/igloonet.cz\/blog\/wp-json\/wp\/v2\/media?parent=6339"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/igloonet.cz\/blog\/wp-json\/wp\/v2\/categories?post=6339"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/igloonet.cz\/blog\/wp-json\/wp\/v2\/tags?post=6339"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}