Pogledajte određenu poruku
Staro 27. 05. 2008.   #10
ppavlovic
expert
Expert
 
Avatar ppavlovic
 
Datum učlanjenja: 27.11.2005
Poruke: 543
Hvala: 47
57 "Hvala" u 31 poruka
ppavlovic će postati "faca" uskoro
Default

Svaki jedinstveni URL se po default kesira, osim ako nije u pitanju PHP skripta pa onda doda odredjena zaglavlja koja "ubiju" kesiranje.

Ja koristim sledeci kod za kesiranje javascript fajlova (url je tipa /js/prototype.js;/js/behaviour.js;/js/scriptaculous/effects.js) :

PHP kôd:
    $last_modified gmdate('M d Y H:i:s'$timestamp) . ' GMT';

    
$etag md5($last_modified);

    
$headers apache_request_headers();
    
$if_modified_since preg_replace('/;.*$/'''$headers['If-Modified-Since']);
    if (
$if_modified_since == $last_modified) {
        
header("HTTP/1.0 304 Not Modified");
        exit;        
    }

    
header("E-tag: $etag");
    
header("Expires: Tue, 20 Apr 2010 19:15:00 GMT");
    
header("Last-modified: " $last_modified);
    
header("Cache-Control: max-age=86400, public");    // cache 1 day for proxies
 
   
print file_get_contents(<JS FAJLOVI>); 
Objasnjenje: $timestamp je najveca vrednost filemtime od ukljucenih fajlova. E-tag posto drugacije ne umem, dobijem kao md5 od filemtime pa je uvek jedinstven.
Pomocu funkcije apache_request_headers pokupim sva zaglavlja koje browser salje i uporedim If-Modified-Since sa $last_modifled fajla. Ako nije skoro editovan neki fajl, saljem zaglavlje 304 Not Modified, ako jeste, saljem nov sadrzaj i postavljam zaglavlja E-tag i Last-Modified.

Inace, sve ovo radi zbog toga sto kad browseru posaljes Last-Modified zaglavlje, on ce te sledeci put pitati sa If-Modified-Since.

P.S. postoji problem sto kod nekih PHP instalacija nema funkcije apache_request_headers
__________________
MojNoviAuto.com - Tvoj prvi sajt za kupovinu novog automobila
ppavlovic je offline   Odgovorite uz citat