[JS] Hoe cache ik een gzip javascript WEL

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

  • vorlox
  • Registratie: Juni 2001
  • Laatst online: 02-02-2022

vorlox

I cna ytpe 300 wrods pre miute

Topicstarter
Beste Allemaal,

Ik zit met het volgende, ik heb een nogal groot JS bestand +- 257 KB
Deze zou ik via gzip willen versturen naar de browser (+- 67KB)

Nu heb ik dat via .htaccess op de volgende manier voor elkaar gekregen
code:
1
2
3
4
<filesMatch ".js$">
    AddHandler application/x-httpd-php .js
    php_value auto_prepend_file gzip-js.php
</filesMatch>


in het bestand gzip-js.php staat een vanaf internet geplukt stukje code
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
<?php
ob_start ("ob_gzhandler");
header("Content-type: text/javascript; charset: UTF-8");
header("Cache-Control: max-age=315360000");
$offset = 60 * 60 * 24 ;
$ExpStr = "Expires: " .
gmdate("D, d M Y H:i:s",
time() + $offset) . " GMT";
header($ExpStr);
# Never modified
header("Last-Modified: ".gmdate("D, d M Y H:i:s", strtotime('12-10-2009 8:45:33'))." GMT");
?>


Echter in firebug geeft hij aan nog steeds een 200 OK en geen 304 not modified
Ik zie echter in de headers dat de Date header steeds veranderd.

code:
1
2
3
4
5
6
7
8
9
10
11
12
Date    Tue, 24 Nov 2009 13:53:23 GMT
Server  Apache
X-Powered-By    PHP/5.2.4-2ubuntu5.7
Cache-Control   max-age=315360000
Expires Wed, 25 Nov 2009 13:53:23 GMT
Last-Modified   Mon, 12 Oct 2009 06:45:33 GMT
Content-Encoding    gzip
Vary    Accept-Encoding
Keep-Alive  timeout=15, max=99
Connection  Keep-Alive
Transfer-Encoding   chunked
Content-Type    text/javascript; charset: UTF-8


Iemand enig idee hoe je een gzipt javscript bestand cached?

Acties:
  • 0 Henk 'm!

  • crisp
  • Registratie: Februari 2000
  • Laatst online: 00:16

crisp

Devver

Pixelated

Waarom gebruik je niet gewoon mod_deflate/mod_gzip in combinatie met mod_expires?

Intentionally left blank


Acties:
  • 0 Henk 'm!

  • vorlox
  • Registratie: Juni 2001
  • Laatst online: 02-02-2022

vorlox

I cna ytpe 300 wrods pre miute

Topicstarter
He cirsp
ah een apache oplossing nog beter.
Ik draai apache 2 dus ik ben gegaan voor defalte (obvious)

Nu heb ik in mijn .htaccess staan
code:
1
2
3
4
ExpiresActive On
<FilesMatch "\\.(js|css|html|htm|php|xml)$">
SetOutputFilter DEFLATE
</FilesMatch>


Nu wordt idd de output van o.a de JS teruggebracht naar 64KB das dus nog een kleine winst
Echter firebug blijft 200 OK geven.

Wat moet ik precies doen met die mod_expires...

Acties:
  • 0 Henk 'm!

  • Sebazzz
  • Registratie: September 2006
  • Laatst online: 16-09 15:42

Sebazzz

3dp

Heb je toevallig ook Web Developer Toolbar geinstalleerd? Die zet standaard de cache van de browser uit (Disable -> Disable cache). Een 304 not modified moet je overigens bij een HEAD request zenden.

[Te koop: 3D printers] [Website] Agile tools: [Return: retrospectives] [Pokertime: planning poker]


Acties:
  • 0 Henk 'm!

  • vorlox
  • Registratie: Juni 2001
  • Laatst online: 02-02-2022

vorlox

I cna ytpe 300 wrods pre miute

Topicstarter
Ja wel geinstalleerd maar de Disable cache optie staat uit
En anders zou hij waarschijnlijk zonder gzip ook geen cache geven maar dat doet hij juist wel
Dus zonder gzip in volle 257KB glorie cached hij wel