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.
 

Fichier Zip

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

Commentaires et avis

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"...

signaler à un administrateur
Commentaire de Archeone le 03/07/2008 14:26:58

ScriptManager à la ligne 61 du fichier Script.cs n'est pas déclarer, ou du moins sous visual studio 2008 avec le framework ScriptManager n'est pas une propriété de PlaceHolder.
Du coup le projet ne compile pas, domage ce control avait l'air vraiment très intéressant.


ScriptManager.RegisterStartupScript(this, typeof(Script), this.Key, script, true);

signaler à un administrateur
Commentaire de Archeone le 03/07/2008 14:38:33

Oups je viens de comprendre, la DLL System.Web.Extension n'était pas chargé. C'est pour ça qu'il ne trouvait pas la classe ScriptManager.

Désolé. :)

Ajouter un commentaire

Discussions en rapport avec ce code source dans le forum

Comment accèder à un WebControl à l'intérieur d'un content (en javascript)? [ par edge_man ] J'aimerai pouvoir acc&#233;der en javascript &#224; un WebControl (une TextBox) situ&#233; dans un Content. Ce Content est utilis&#233; parce que j'a lire un .gif dans les webressources avec javascript [ par fredzool ] dans mon webcontrol http://www.aspfr.com/codes/WEBCONTROL-DATEPICKER-WEBCONTROLLIBRARY_48850.aspxj ai un calendrier en javascriptje ne Code behind et javascript [ par emalio13 ] Bonjour à toutes et à tous,Etant débutante en ASP.net, je rencontre quelques difficultés.En effet, je développe une application avec visual web develo web service [ par verbeyst ] Bonjour,Je voudrais "générer"/ "écrire " un formulaire qui stocke le username et le passwd et qui appele un web service tout en passant ces valeurs en galerie photo PHP vs JAVASCRIPT [ par kataVB ] boujour tout le mondeje suis entrain ecrire un programme pour realiser une galerie de photo pour un site web. J'ai commencé de programmer en javascrip ASP.NET / XML / Javascript : stocker un javascript dans xml [ par anai ] Bonjour,Voici mon probleme : J'ai une webforms dans lequel en ligne je mets un javascript (style Google Analytics). Je veux stocker ce javscript dans Récupérer le texte modifié par Javascript en ASP [ par sspizer ] Bonjour à tous, J'ai un petit soucis pour récupérer le texte qui à été modifié par du javascript en asp. Voila en gros ce que je fais: Code ASP: <a ACCESS et php, Javascript, ASP.... [ par I_am_Bibou ] Mesdames, Messieurs Bonjours.Ne sachant pas ou poster ce sujet je le poste ici.J'ai développer une base de donnée ACCESS avec tout ce qui va avec (éta Problème Textbox Effacées en Javascript côté Client mais pas côté serveur [ par vinzemuls ] BOnjour,voilà j'ai un bouton qui me permet d'effacer des textboxs en JAVASCRIPT qui s'éxecute correctement. le problème est que lorsque je souhaite en ajouter à en liste les élements choisis en jsp,javascript [ par reseau210 ] salut,en fait je travaille sur eclipse: jsp, servlet, javascript.j'ai un tableau contenant des données et mon problème consiste que j'ai pas su commen


Nos sponsors

Sondage...

CalendriCode

Juillet 2009
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
2728293031  

Consulter la suite du CalendriCode

Téléchargements

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

Comparez les prix Nouvelle version

Photothèque Nouveau !



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 0,562 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.