2009-12-13 8 views
5

Google a le très beau compresseur JavaScript appelé « Fermeture »Comment appliquer Google Closure à l'intégralité de ma page Web?

http://closure-compiler.appspot.com/home

Mais il est une douleur à utiliser pour JavaScript en ligne dans un fichier HTML. Question: Existe-t-il un outil en ligne où je donne simplement l'entrée "uncompress.html" et qui crache la version compressée de ce code HTML avec tout le JavaScript intégré compressé?

+2

Pour quelles raisons avez-vous besoin inline JavaScript dans un fichier HTML? –

+2

J'ai besoin que le JS fonctionne immédiatement. Donc, le moyen le plus rapide de le faire est d'avoir JS en ligne. De plus, ce JS n'est utilisé que sur cette seule page HTML – NickH

Répondre

2

Les minifieurs, les obfuscateurs et les compresseurs ont été conçus pour résoudre le problème du téléchargement d'éléments externes lors du chargement d'une page. Ils n'ont jamais été conçus pour être utilisés pour JavaScript ou CSS, car beaucoup de ces éléments sont normalement conservés en dehors de la page dans un fichier séparé.

Étant donné que vous devriez utiliser autant que possible le gzip, pour les navigateurs qui peuvent gérer gzip, il ne devrait pas en réalité que votre css/javascript en ligne ne soit pas minimisé sur la page.

+0

Vous penseriez mais j'ai beaucoup de JavaScript. Le simple fait de fermer Closure seul sur mon JS réduit mon JavaScript de près de 94 ko, même compressé. Mon JavaScript approchant 400 kb (gzippé), donc 94 kb de JS gzippé est énorme – NickH

+1

s'il y a beaucoup de javascript en ligne, il devrait probablement être dans son propre fichier car il aurait son propre tube à télécharger et n'a pas besoin d'aller dans votre Fichier all.js. Les navigateurs modernes ont 8 tuyaux à télécharger donc doutez que vous ayez trop de blocage – AutomatedTester

+2

Mon dieu 400Kb (compressé) de javascript en ligne !!! – micmcg

1

Si vous utilisez PHP, vous pouvez appeler le compilateur de Google de cette manière, puis utilisez l'en-tête pour retourner javascript

<?php 
    $script = file_get_contents('http://www.domain.com/scripts/script.js'); 
    $ch = curl_init('http://closure-compiler.appspot.com/compile'); 

    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 
    curl_setopt($ch, CURLOPT_POST, 1); 
    curl_setopt($ch, CURLOPT_POSTFIELDS, 'output_info=compiled_code&output_format=text&compilation_level=SIMPLE_OPTIMIZATIONS&js_code=' . urlencode($script)); 
    $output = curl_exec($ch); 
    curl_close($ch); 

    header('Content-type: application/javascript'); 
    echo $output; 

?> 

link php code

0

Mirroring Commentaire de AutomatedTester, vous devriez vraiment pas mettre tellement JavaScript en ligne dans votre fichier HTML.

Mais si vous voulez vraiment vraiment faire cela pour une raison quelconque, pourquoi pas vous:

  1. Faire un fichier texte contenant le JavaScript
  2. Compresser avec Fermeture
  3. le copier dans votre <script></script> tag

je sais que ce n'est pas automatique, mais vous ne devriez avoir besoin de faire t son quand vous déployez, et vous ne déployez pas toutes les heures, non?

Je ne l'ai pas vu beaucoup besoin de minimiser HTML, puisque gzip fait généralement un assez bon ...

Questions connexes