Oznámení

Fórum bylo uzavřeno. Využijte prosím služeb serverů JakPsatWeb, Builder nebo Webtrh.

#1 před 5 měsíci

malchic
Člen
Registrovaný: 25. 12. 2011
Příspěvky: 3

cachování stylů/obrázků

Ahoj,

řeším na svém prvním větším projektu cachování, nevím, jestli jsem se vydal správnou cestou – třeba v GCH vše parádní, ale ve firefoxu to je bída.

<?php
$cached_filename = md5($_GET['page']);
$time_diff = time() - filemtime('cache/' . $cached_filename);
if (file_exists('cache/' . $cached_filename) && $time_diff <= $config['cache_lifetime']) {
   // read from cache dir
   include ('cache/' . $cached_filename);
   exit;
} else {
   // get data from DB, render page
   file_put_contents(...);
}
?>

V Chromu vše funguje parádně, web se načítá z 0.00 nic, zatímco firefox (ostatní prohlížeče jsem zatím nezkoušel) načítá všechny obrázky a styly pokaždé znovu (odpadlo jen načítání z DB, ale jaksi nepracuje cache browseru?)

Asi bych to dělal tak, že všechny CSS a obrázky v nich by měly za názvem nějaký timestamp (styles.css?stamp=1234) – jde nějak říct: pokud je stamp stejný jako minule, sáhni do cache, jinak načti znovu?

Nebo je jiná cesta?

Děkuji

 

#2 před 5 měsíci

HosipLan
Člen
Registrovaný: 1. 6. 2009
Příspěvky: 2635

Re: cachování stylů/obrázků

Na to jsou http hlavičky http://www.slideshare.net/…g-strategies


Neptej se, jestli se můžeš ptát | Blog | Twitter | GitHubCMS Kdyby

Nette Jabber Room – nette@conf.netlab.cz , všichni jste vítáni

 

#3 před 5 měsíci

malchic
Člen
Registrovaný: 25. 12. 2011
Příspěvky: 3

Re: cachování stylů/obrázků

HosipLan – to jsem si myslel, můžeš být prosím konkrétnější? V tomhle se moc nevyznám, někde jsem našel tohle, ale nefunguje to… Tedy, ve Firefoxu, v Chromu ano.

<?php
$expiry = 60; // to se nekde naplnuje, kazdopadne je to INT, je jedno, jakou ma aktualne hodnotu

header('Accept-Encoding: gzip;q=1.0, deflate;q=0.5');
header("Pragma: public");
header("Cache-Control: max-age=".$expiry + 3600 * 24);
header('Expires: '.gmdate("D, d M Y H:i:s",time() + $expiry + 3600 * 24).' GMT');
$the_date = GetModifiedDate();
header('Last-Modified: ' . gmdate('D, d M Y H:i:s',$the_date) . ' GMT');
?>

Editoval malchic (25. 12. 2011 16:57)

 

#4 před 5 měsíci

HosipLan
Člen
Registrovaný: 1. 6. 2009
Příspěvky: 2635

Re: cachování stylů/obrázků

O to by se měl přece postarat webserver, nebo CDN, ne?


Neptej se, jestli se můžeš ptát | Blog | Twitter | GitHubCMS Kdyby

Nette Jabber Room – nette@conf.netlab.cz , všichni jste vítáni

 

#5 před 5 měsíci

malchic
Člen
Registrovaný: 25. 12. 2011
Příspěvky: 3

Re: cachování stylů/obrázků

CDN?

Neříkám, že by to neměl mít na starost weberver nebo CDN (?), nikdy jsem s cachí nepracoval (vlastně jsem spíše grafik než programátor).. Můžeš být prosím konkrétní, pokud víš jak? Článků o cachování jsem našel spoustu, ale řešilo se to vždy na úrovni PHP takto, jak jsem postnul výše – přes nastavení několikera headerů.

 

#6 před 5 měsíci

buff
Člen
Registrovaný: 6. 7. 2009
Příspěvky: 59

Re: cachování stylů/obrázků

Zkus se podívat na tento článek o zrychlení webu, nebo posledně taky vyšlo něco o mod_pagespeed na zdrojáku.

 

Zápatí