Autor | Zpráva | ||
---|---|---|---|
maks Profil |
Ahoj,
váhám u zařazení do správné kategorie (HTML/JS), zkusím sem. Podle stránky http://developers.google.com/speed/pagespeed/insights/ mám na svém webu „JS a CSS blokující zobrazení“ s odkazy https://developers.google.com/speed/docs/insights/BlockingJS a https://developers.google.com/speed/docs/insights/OptimizeCSSDelivery. U posledních dvou odkazů (na optimalizaci JS a CSS) se na můj případ vztahuje "velký" soubor, nikoliv ten párřádkový. Doplním ještě poznámku, které jsem si všiml až teď: „Žádný obsah vaší stránky nad okrajem nebylo možné vykreslit bez čekání na načtení následujících zdrojů. Zkuste načtení blokujících zdrojů odložit, načíst je asynchronně nebo kritické části zdrojů vložit přímo do kódu HTML.“. Stylopisy mám na stránce tři, klasicky v záhlaví (jeden hlavní, jeden specifický pro danou stránku a responsivní), JavaScripty jsou dva přilinkované na samém konci stránky. Vše až na jeden CSS je minifikované (dle tohoto nástroje bych minifikací ušetřil cca 500B, což mě netíží). Vím, že by šly všechny CSS a JS sloučit dohromady, ale to neřeší, proč tento nástroj nyní povídá, že má problém a na něco musí čekat. Je nějaký způsob, jak stránce pomoci? Na co čeká, když vše je tak, jak by (snad) mělo být? |
||
Chamurappi Profil |
#2 · Zasláno: 25. 10. 2013, 11:14:19
Reaguji na makse:
„jeden hlavní, jeden specifický pro danou stránku a responsivní“ Proč není ten responsivní uvnitř jednoho z těch dvou v @media (…) {} ?
„Vše až na jeden CSS je minifikované“ Možná by stálo za to ten neminifikovaný styl, který je pravděpodobně malý, dát jako interní <style> . Ale těžko říct, zda by se tím něco urychlilo.
Použitý testovací nástroj je sice dost chytrý, ale pořád je to jen hloupý automat, který nevyhodnocuje všechny rozhodující faktory. Činí jen obecná pozorování bez zkoumání širšího kontextu. „Je nějaký způsob, jak stránce pomoci?“ Chceš-li konkrétní rady, přihoď konkrétní stránku. |
||
maks Profil |
#3 · Zasláno: 25. 10. 2013, 11:51:04
Chamurappi:
„Proč není ten responsivní uvnitř jednoho z těch dvou v @media (…) {}?“ je dostatečně malý, že to nevadí. „Ale těžko říct, zda by se tím něco urychlilo.“ v praxi asi ne, alespoň ne nic dramatického. „Použitý testovací nástroj je sice dost chytrý, ale pořád je to jen hloupý automat“ hm, to je to, co jsem čekal. Potvrdím si jen mou domněnku, kterou jsem považoval za správnou (asi správná je), ale tento nástroj mě trochu znejišťuje. Pokud mám script na konci stránky (před </body>), načítá se až poté, co je načteno vše ostatní, že? I když tam je inicializace slideru, který je tvořen obrázky uprostřed stránky, nejprve se načte HTML do konce (obrázky pod sebou, bez slideru) a až poté se donačte a spustí slider (obrázky kromě provního skryje). Je to tak, že? |
||
_es Profil |
#4 · Zasláno: 25. 10. 2013, 14:03:00
maks:
> „Proč není ten responsivní uvnitř jednoho z těch dvou v @media (…) {}?“ > je dostatečně malý, že to nevadí. Práve preto, že je malý, tak to brzdí jeden HTTP dotaz navyše. „Pokud mám script na konci stránky (před </body>), načítá se až poté, co je načteno vše ostatní, že?“ Nemusí byť načítané „všetko“, obrázky sú sťahované asynchrónne, teda objekty obrázkov už existujú, no nemusia byť ešte celé načítané. |
||
Chamurappi Profil |
#5 · Zasláno: 25. 10. 2013, 14:11:38
Reaguji na makse:
„je dostatečně malý, že to nevadí“ Právě proto se možná nevyplatí kvůli němu vysílat další HTTP požadavek. „Pokud mám script na konci stránky (před </body>), načítá se až poté, co je načteno vše ostatní, že?“ Načítá se v okamžiku, kdy se k němu dostane HTML parser. „nejprve se načte HTML do konce (obrázky pod sebou, bez slideru) a až poté se donačte a spustí slider“ A když se třeba skript nenačte vůbec, tak jsou obrázky pod sebou stále. Je to v zájmu uživatele? |
||
maks Profil |
#6 · Zasláno: 26. 10. 2013, 10:16:45
_es:
„Práve preto, že je malý, tak to brzdí jeden HTTP dotaz navyše.“ že by to bylo myšleno takto? Zajímavé, zkusím je přidružit dohromady. „Nemusí byť načítané ‚všetko‘, obrázky sú sťahované asynchrónne“ myšleno ve smyslu: Načítá se až poté, co jsou ostatní elementy načtené, nebo jejich (asynchronní) načítání začalo. Chamurappi: „Načítá se v okamžiku, kdy se k němu dostane HTML parser.“ ... který jede sytematicky shora dolů, ne? „A když se třeba skript nenačte vůbec, tak jsou obrázky pod sebou stále.“ načtou se dva (jeden slide, sliderem měním po dvou obrázkách) a následuje pak overflow, zbylé nejsou vidět. Pokud neuvidí zbytek obrázků, nic hrozného se nestane. |
||
_es Profil |
maks:
„myšleno ve smyslu: Načítá se až poté, co jsou ostatní elementy načtené, nebo jejich (asynchronní) načítání začalo.“ Ani to nemusí byť celkom pravda. Prehliadač môže mať obmedzenie na počet HTTP dotazov a teda ani načítanie nemuselo začať, no objekty elementov v DOM a JS už existujú. |
||
Časová prodleva: 3 dny
|
|||
peta Profil |
#8 · Zasláno: 29. 10. 2013, 08:11:29
maks: Spis mu slo o to, ze uzivatelovi posilas to, co prave ted nepotrebuje, more obrich obrazku pro slider. Rekneme 6 obrazku po 15k + 1k hlavicka + 300ms prenos, to mas 2s a asi 100k.
|
||
Časová prodleva: 10 let
|
0