begin process at 2008 05 16 04:40:29
1 173 215 membres
57 nouveaux aujourd'hui
13 970 membres club

Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum.
Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

COMPACTER DU JAVASCRIPT


Information sur la source



Description

Avec l'avenement "du Web 2.0", on est de plus en plus souvent amené à rajouter du javascript dans notre page, ce qui a pour effet de faire gonfler la taille de la page.

Vous trouverez tout d'abord dans cette source, une classe qui permet de compresser du javascript, j'ai utilisé l'implémentation C# de la classe de Douglas Crockford : http://javascript.crockford.com/jsmin.html. Pour compresser du javascript il vous suffit de faire JavaScriptMinifier.Minify(originalString).

Vous trouverez également un contrôle Script qui permet de rajouter du JavaScript et le compresser directement dans la page. Pour cela il vous faut ajouter l'assembly dans le web.config

<system.web>
<pages>
<controls>
        <add tagPrefix="cs" namespace="CS.Web.UI" assembly="CS.Web.JSCompressor"/>
</controls>
</pages>

et vous pouvez ensuite utiliser le code ci dessous :


Source

  • <asp:ScriptManager runat="server" />
  • <cs:Script ID="Script1" runat="server">
  • // Définition de la méthode pouetpouet
  • var pouetpouet = function(){
  • // cette méthode ne sert à rien
  • var j = 0;
  • for ( var i = 0 ; i < 100 ; i++ ) {
  • j += 1;
  • }
  • }
  • </cs:Script>
  • <div>
  • <asp:button ID="btn1" runat="server" Text="toto" />
  • </div>
  • <cs:Script ID="Script2" runat="server">
  • $addHandler($get('<%=btn1.ClientID%>'), 'click', function(e){
  • /* je ne veux pas que tu clicks sur le bouton */
  • e.preventDefault();
  • });
  • </cs:Script>
  • <%-- générera : -->
  • <script type="text/javascript">
  • //<![CDATA[
  • Sys.Application.initialize();
  • var pouetpouet=function(){var j=0;for(var i=0;i<100;i++){j+=1;}}
  • $addHandler($get('btn1'),'click',function(e){e.preventDefault();});//]]>
  • </script>
    <asp:ScriptManager runat="server" />
    <cs:Script ID="Script1" runat="server">
        // Définition de la méthode pouetpouet 
        var pouetpouet = function(){
            // cette méthode ne sert à rien 
            var j = 0; 
            for ( var i = 0 ; i < 100 ; i++ ) {
                j += 1;
            }
        }
    </cs:Script>
    <div>
        <asp:button ID="btn1" runat="server" Text="toto" />
    </div>
    <cs:Script ID="Script2" runat="server">
        $addHandler($get('<%=btn1.ClientID%>'), 'click', function(e){
            /* je ne veux pas que tu clicks sur le bouton */
            e.preventDefault();
        });
    </cs:Script>


<%-- générera :  -->

<script type="text/javascript">
//<![CDATA[
Sys.Application.initialize();

var pouetpouet=function(){var j=0;for(var i=0;i<100;i++){j+=1;}}
$addHandler($get('btn1'),'click',function(e){e.preventDefault();});//]]>
</script>

Conclusion

Tous le code JavaScript contenu dans la balise <cs:Script a été compressé et rajouté dans une meme balise <script. La propriété key contrôle permet de rajouté deux fois le meme script dans la page, il sera généré qu'une seule fois s'il a la même clé. Cela peut être utile si vous travailler avec différents UserControl.
Pour les "Membres Club", vous pouvez télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !

Télécharger le zip

  • signaler à un administrateur
    Commentaire de JACKY007 le 20/08/2007 09:04:20

    IIS intègre déjà 'la compression du site' lors de l'envoi vers le client, il suffit de l'activer...

  • signaler à un administrateur
    Commentaire de jesusonline le 20/08/2007 09:25:05 administrateur CS

    non, IIS permet de compresser en gzip, pas de supprimer les espaces inutiles. Bien sur il va de soit qu'il faut aussi activer la compression gzip.

  • signaler à un administrateur
    Commentaire de maitredede le 18/03/2008 10:22:07

    Bonjour Jesus,

    Et pour une version qui le fait à la fois pour les fichiers javascript du site, et pour toutes les zones "script" des pages ?
    Exemple : compacter le javascript de ASP.NET, compacter le javascript "perso"...

Ajouter un commentaire

Appels d'offres

Pub



Snippets en rapport

CalendriCode

Mai 2008
LMMJVSD
   1234
567891011
12131415161718
19202122232425
262728293031 

VS Express FR Gratuit !

VS Express en français et 100% gratuit !

Téléchargements

Logiciels à télécharger sur le même thème :

Boutique

Boutique de goodies CodeS-SourceS