Raketendüsentrieb: Service Worker und PHP Dateien

Beitrag lesen

Hallo Raketendüsentrieb, Ich sehe da einen expires Header, d.h. Du machst das mit mod_cache?

Nö. Ich war zu faul zu überprüfen, ob mein Hoster mod_chache geladen hat. Ich mach das mit meiner uralten Cachetechnik, die bei Verfügbarkeit und Empfangsbereitschaft gleich die gezippten Daten „raushaut“:

    if ( isCache( $cachefile ) ) {
        if (  ( ! isset ( $_SERVER['HTTP_ACCEPT_ENCODING'] ) ) or false===strpos($_SERVER['HTTP_ACCEPT_ENCODING'], 'gzip') ) {
            header( 'Last-Modified: ' . date( 'r' , filemtime( $cachefile ) ) );
            header( 'Expires: '.date('r', date('U') + (CACHE_TIME_LIMIT * 60) ) );
            header( 'Cache-Control: max-age='.( CACHE_TIME_LIMIT * 60 ) );
            echo gzdecode ( file_get_contents( $cachefile ) );
            exit;
        } else {
            header( 'Vary: Accept-Encoding' );
            header( 'Content-Encoding: gzip' );
            header( 'Last-Modified: ' . date( 'r' , filemtime( $cachefile ) ) );
            header( 'Expires: ' . date( 'r', date( 'U' ) + ( CACHE_TIME_LIMIT * 60 ) ) );
            header( 'Cache-Control: max-age=' . ( CACHE_TIME_LIMIT * 60 ) );
            readfile( $cachefile );
            exit;
        }
    }

Vorteil: Serverseitiges und browserseitiges Cachelimit stimmen überein...