Problème compression de script Javascript

WRInaute accro
Bonsoir

J'ai un script Javascript, appartenant au code du site StatCounter, que j'aimerais bien compresser, car il fait plus de 7000 octets. Je sais que je peux faire cela, pour peu que le script soit affiché dans le code html de la page, avec le module mod_gzip de Apache 2, de la manière suivante:

Mon script est dans le fichier: counter_xhtml.js , il y a un certain nombre d'instructions Javascript, qui font au total un peu plus de 7000 octets.

Pour compresser ce fichier, j'écris ceci dans le script php counter_xhtml.php :

<?php
ob_start("ob_gzhandler");
header("Content-type: text/javascript; charset: ISO-8859-1");
echo(file_get_contents("http://www.pronostics-courses.fr/counter_xhtml.js"));
?>


Ensuite, j'écris ceci dans le fichier .htaccess , après l'instruction fatidique:

RewriteEngine On

RewriteRule counter_xhtml\.js$ /counter_xhtml.php [L]


Le problème... C'est que le script counter_xhtml.js est appelé dans la page html entre les instructions <script suivantes:

<script type="text/javascript" src="http://www.pronostics-courses.fr/counter_xhtml.js">
</script>

Mutatis mutandis, car au départ ce n'était pas www.pronostics-courses.fr/ , mais l'url du script de StatCounter.

Donc, ma question est: Avec un code Javascript, est-ce que le fichier .htaccess va jouer son rôle d'appeler le script counter_xhtml.php au lieu de counter_xhtml.js , ce qui aura pour effet de charger ce même script Javascript, mais en mode compressé gzip ?

Ou bien, y a-t-il une autre façon de procéder, de façon à ce que la compression puisse se faire, en utilisant le procédé actuel ?

Merci beaucoup de vos réponses.

Jean-François Ortolo
 
WRInaute occasionnel
Salut,

Pour la compression gzip, il faut que gzip soit installé sur le serveur. Tu peux passer par un buffer.

En ce qui concerne ton rewrite normalement ça fonctionne ;)
Quoique, le . n'est pas un caractère spécial. Essaye comme ça :
Code:
RewriteRule ^counter_xhtml.js counter_xhtml.php

Pas bien compris ça :
Le problème... C'est que le script counter_xhtml.js est appelé dans la page html entre les instructions <script suivantes:

<script type="text/javascript" src="http://www.pronostics-courses.fr/counter_xhtml.js">
</script>
Si tu compresses le js sur ton serveur, c'est normal que l'appel et donc l'url soit celle de ton serveur.
 
WRInaute accro
rolriam a dit:
Salut,

Pour la compression gzip, il faut que gzip soit installé sur le serveur. Tu peux passer par un buffer.

En ce qui concerne ton rewrite normalement ça fonctionne ;)
Quoique, le . n'est pas un caractère spécial. Essaye comme ça :
Code:
RewriteRule ^counter_xhtml.js counter_xhtml.php

Pas bien compris ça :
Le problème... C'est que le script counter_xhtml.js est appelé dans la page html entre les instructions <script suivantes:

<script type="text/javascript" src="http://www.pronostics-courses.fr/counter_xhtml.js">
</script>
Si tu compresses le js sur ton serveur, c'est normal que l'appel et donc l'url soit celle de ton serveur.


Bonjour rolriam

Le problème du point est secondaire.

En tout cas, dans une RewriteRule, le premier argument n'est-il pas considéré comme une expression rationnelle posix ?

Dans une expression rationnelle, le point . peut remplacer n'importe quel caractère ( lettre, je ne sais pas pour les chiffres ) y compris lui-même.

Je vais tester tout de suite la compression.

Merci beaucoup de ta réponse. ;)

Bien à vous.

Amicalement.

Jean-François Ortolo
 
WRInaute accro
Bonjour

Cà marche ! ;)

Maintenant, je vais tâcher de compresser mes deux images.

Actuellement, chacune des deux images tient sur deux paquets tcp/ip ( je crois, je ne sais pas trop combien exactement il y a d'octets utiles dans un paquet, je croyais 4096 octets, mais c'est probablement le nombre d'octets total, le nombre utile est probablement plus faible. )

En diminuant encore la résolution, et en passant ces deux images *.jpg à la même moulinette que ma feuille css et le script Javascript, je devrais, sous toutes réserves, pouvoir passer à un paquet tcp/ip par image. ;)

En tout cas, pour la page d'accueil, le nombre d'octets pour les scripts Javascript est passé de plus de 8000 octets, à 2933 octets... ;)

Bien à vous.

Amicalement.

Jean-François Ortolo
 
WRInaute accro
Bon ben c'est raté :(

Le module mod_gzip ne prend pas en compte les fichiers de suffixe *.jpg

J'aurais du y penser...

Je remet les images comme avant.

Ces images me pompent de l'espace, va falloir que j'y pense, pour la deuxième image... ;(

Bien à vous.

Amicalement.

Jean-François Ortolo
 
Discussions similaires
Haut