Autor Zpráva
nejdesemiprihlasit
Profil
Dobrý den,
Mám dotaz ohledně pomalého načítání webu.
Už delší dobu mě otravuje dlouhé načítání webu na mobilních zařízeních (všeobecně kde je pomalý internet).
Jelikož se mi pokaždé stahují všechny CSS a JS soubory načítání se dost prodlužuje a navíc spotřeba dat je neúnosná.
Jak je možné tento problém řešit ?
Napadlo mě to pomocí cookies ukládat do prohlížeče, ale nevím jestli můžu ukládat celé soubory.
Taps
Profil
nejdesemiprihlasit:
a co nastavit cachování?
Keeehi
Profil
O jaké stránky jde? Pokud o zakkproject.tk, tak taky pomůže, když zredukuješ velikost obrázku zakkproject.tk/img/para-01.jpg. Momentálně je stejně veliký jako celý zbytek stránky a to je dost vzhledem k tomu, že je schovaný na pozadí a ještě překrytý poloprůhledným pozadím.
Jinak to co napsal Taps je pravda. Tvůj server neodesílá hlavičku Cache-Control, takže je jen na prohlížeči, jak se ke kešování postaví.
nejdesemiprihlasit
Profil
No právě jsem dodělal PHP administraci a pracuju na optimalizaci a opravě chyb. Cache control mě nenapadlo :D díky
Co se týče toho para-01.jpg je to náhodný obrázek z randomimages v nějaké normální kvalitě později tam dám vlastní.
nejdesemiprihlasit
Profil
Jak tedy cachování nastavit ? nějak jsem ten článek nepochopil. Jsou tam pouze příklady pro vypnutí. Je tedy cachování automatické ?

Potřeboval bych aby se to cachovalo do té doby dokud nevýjde update. je možné i toto nějak ošetřit ? Ukládáním aktuální verze CSS stylů a poté porovnáváním s aktuální verzí.
Keeehi
Profil
Nastavení kešování na jednu hodinu pro apache vypadá takto.
<filesMatch ".(css|js|jpg|jpeg|png|gif|svg|ico)$">
  Header set Cache-Control "max-age=3600, public"
</filesMatch>

nejdesemiprihlasit:
Potřeboval bych aby se to cachovalo do té doby dokud nevýjde update. je možné i toto nějak ošetřit ?
To moc nejde. Když má prohlížeč něco v keši, serveru se na to neptá a nemá tak jak zjistit, že se něco změnilo.

Nejjednodušší a nejspolehlivější řešení, jak invalidovat keš je změna url. Což se dá velmi jednoduše udělat připojením nějakého parametru.
<link rel="stylesheet" type="text/css" href="theme.css?verze-456">
V samotném theme.css není potřeba dělat žádná změna. Jelikož server soubory .css běžně neinterpretuje, jen je vrací, tu část za otazníkem zahodí, jelikož je k ničemu. Pro prohlížeč je to ale nová adresa, kterou v keši nemá, takže soubor musí načíst.
Pokud takto budeš měnit url adresy při každé změně obrázku, scriptu, stylu, ... pak můžeš dobu kešování nastavit klidně třeba na 10 let nebo více.

Vaše odpověď


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: