Page 1 sur 1

accélérer javascript

Posté : 05 avr. 2007, 15:14
par Invité
Bonjour à tous,
j'ai découvert la fonction php ob_start("ob_gzhandler"); qui permet de compresser els pages et les charger plus vite.
Existe t il des éqquivalents pour accélérer le chargement et l'exécution de code javascript?

Posté : 05 avr. 2007, 17:36
par tanky
Divers outils permettent de compresser le code source ... en voila un pour javascript: http://www.crockford.com/javascript/jsmin.html

Posté : 05 avr. 2007, 18:08
par Hubert Roksor
Les deux sont différents et cumulables. Ce que fait ob_gzhandler() c'est compresser la page sans la modifier (elle est automatiquement décompressée par le client), JSMin lui retire les éléments "inutiles" d'un script. En l'occurence, les espaces, commentaires et sauts de lignes.

Donc, existe-t'il des équivalents ? Oui, plein. Pour Apache 1.3 mod_gzip, mod_deflate pour 2.0 et 2.2, LightTPD a mod_compress, IIS a un truc incorporé dont je ne me rappelle plus. Tous compressent automatiquement le contenu. Sinon tu peux aussi renommer ton fichier javascript en lui ajoutant ".php" à la fin pour le transformer en script PHP et alors tu peux à nouveau utiliser ob_gzhandler() en début de script.

À noter que certains versions préhistoriques d'IE n'aiment pas trop.

Posté : 05 avr. 2007, 18:09
par Ryle
Euh.... je me trompe peut être, mais je ne vois pas vraiment en quoi le fait de coller la sortie dans un tampon avec ob_start() permettrait de charger une page plus vite. Le traitement de génération est le même, la différence est qu'au lieu d'envoyer le flux en direct et d'afficher les données au fur et à mesure, il ne sera envoyé qu'une fois complètement généré et affichera le tout d'un coup à la fin... le flux html n'en sera pas moins gros et il n'ira pas plus vite à charger les éléments externes (images, css, etc.)

Pas moyen non plus d'accélerer un traitement javascript (à part mettre plus de ram ;)) tout ce que tu peux faire c'est effectivement diminuer le flux de données en supprimants espace et retour charriots inutiles dans ton code. Cela diminuera légèrement le temps de chargement de la page, mais ne changera en rien les délais d'exécution...