IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

JavaScript Discussion :

Combiner les fichiers Js


Sujet :

JavaScript

  1. #1
    Expert confirmé
    Avatar de rodolphebrd
    Homme Profil pro
    Indépendant
    Inscrit en
    Novembre 2012
    Messages
    2 336
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Indépendant
    Secteur : Conseil

    Informations forums :
    Inscription : Novembre 2012
    Messages : 2 336
    Points : 5 289
    Points
    5 289
    Par défaut Combiner les fichiers Js
    Bonjour,

    Je souhaiterais connaître la démarche pour rassembler mes fichiers Js (je crée un site statique).

    J'ai vu qu'il suffisait de les coller bout à bout, qu'il existait des outils...

    Merci de me permettre d'être sûr de la bonne pratique à adopter.

  2. #2
    Rédacteur/Modérateur

    Avatar de SylvainPV
    Profil pro
    Inscrit en
    Novembre 2012
    Messages
    3 375
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2012
    Messages : 3 375
    Points : 9 944
    Points
    9 944
    Par défaut
    Généralement on utilise des outils de build comme ant ou des builders plus personnalisés écrits en Java par exemple. La concaténation est une étape parmi d'autres dans les build process de projets web. Côté front on rajoute souvent comme étapes la minification du JS ou la compilation si on utilise des langages comme CoffeeScript ou des templates, des préprocesseurs CSS etc...

    Si tu estimes qu'écrire ton propre builder est trop fastidieux, j'ai entendu du bien de GruntJS comme outil de build JS: http://gruntjs.com/

    En fait avec les navigateurs d'aujourd'hui, concaténer les scripts est moins utile qu'avant. En effet à partir du moment où tu utilises une bonne librairie de chargement dynamique de scripts (je te conseille personnellement head.js), le navigateur charge les scripts en parallèle et donc plus rapidement en rapport taille/temps.

    Néanmoins chaque requête asynchrone est encapsulée dans un paquet HTTP qui lui est propre, plus les couches inférieures (TCP/IP etc...). Donc il ne faut pas trop en abuser non plus et charger des scripts trop petits, au risque d'augmenter inutilement la taille totale des échanges. Réduire le nombre de requêtes est d'ailleurs conseillé pour le web mobile (peut-être à cause des headers propres à la 3G, à confirmer)

    Donc au final je dirais qu'il faut trouver un bon compromis à la fois technique et pratique. Je conseille de ne plus utiliser de mécanisme de concaténation de scripts, mais de ne pas hésiter à les minifier et surtout utiliser une bonne librairie de chargement de scripts dynamiques. En parallèle que ce soit en prod ou en développement, essayez de faire des fichiers JS entre 100 et 1000 lignes de code ; bon compromis en taille/nombre de requêtes et en lisibilité.

  3. #3
    Expert confirmé
    Avatar de rodolphebrd
    Homme Profil pro
    Indépendant
    Inscrit en
    Novembre 2012
    Messages
    2 336
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Indépendant
    Secteur : Conseil

    Informations forums :
    Inscription : Novembre 2012
    Messages : 2 336
    Points : 5 289
    Points
    5 289
    Par défaut
    Merci @SylvainPV,

    Si j'ai bien compris votre réponse:

    **Pas de concaténation.

    1: minification
    2: regroupement des scripts (head.js à l'air bien)
    3: compression

    Vous me confirmez que j'ai bien compris?

  4. #4
    Rédacteur/Modérateur

    Avatar de SylvainPV
    Profil pro
    Inscrit en
    Novembre 2012
    Messages
    3 375
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2012
    Messages : 3 375
    Points : 9 944
    Points
    9 944
    Par défaut
    Minification et compression c'est la même chose, ça consiste à utiliser un outil pour supprimer tous les caractères inutiles (commentaires, espaces, retours chariots) et renommer les variables pour occuper le moins d'espace possible et donc réduire la taille des requêtes. On s'en sert également à des fins d'obfuscation, pour rendre illisible le code source et empêcher sa réutilisation par autrui. Parmi les outils de compression existants on peut citer UglifyJS, Closure Compiler ou encore YUI Compressor.

    Le build process est différent pour chaque projet ou presque, surtout qu'en général le front-end est minoritaire dans ce build process : il y a bien plus à faire côté serveur avec des déploiements, des initialisations en tout genre, des tests unitaires etc...

    Si on s'en tient au Javascript, la best practice est de les minifier, d'activer la compression gzip sur le serveur, et d'utiliser une librairie comme head.js pour charger les scripts à la volée en parallèle.

  5. #5
    Expert confirmé
    Avatar de rodolphebrd
    Homme Profil pro
    Indépendant
    Inscrit en
    Novembre 2012
    Messages
    2 336
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Indépendant
    Secteur : Conseil

    Informations forums :
    Inscription : Novembre 2012
    Messages : 2 336
    Points : 5 289
    Points
    5 289
    Par défaut
    C'est un peu technique et je ne suis pas très familier avec tout ça.

    Citation Envoyé par SylvainPV
    Minification et compression c'est la même chose
    Concrètement minifier ou compresser sont 2 opérations conduisant à un résultat similaire!

    Pour compresser je pensais utiliser Gzip...

    On me conseille Codekit et/ou ant build.

    Désolé pour la compréhension lente du sujet.

    et merci pour vos réponses

  6. #6
    Membre actif

    Profil pro
    Inscrit en
    Juillet 2012
    Messages
    183
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2012
    Messages : 183
    Points : 274
    Points
    274
    Par défaut
    La minification consiste simplement à supprimer tout ce qui est inutile (; en trop, renommage des variables, etc...), yui compressor fait de la minification par defaut
    La compression consiste à factoriser des endroitsr dans ton code, analyser le texte et transformer ça en soupe compressée. PackerJS Fait ça

  7. #7
    Expert confirmé
    Avatar de rodolphebrd
    Homme Profil pro
    Indépendant
    Inscrit en
    Novembre 2012
    Messages
    2 336
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Indépendant
    Secteur : Conseil

    Informations forums :
    Inscription : Novembre 2012
    Messages : 2 336
    Points : 5 289
    Points
    5 289
    Par défaut
    Merci @arnogues

  8. #8
    Rédacteur/Modérateur

    Avatar de SylvainPV
    Profil pro
    Inscrit en
    Novembre 2012
    Messages
    3 375
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2012
    Messages : 3 375
    Points : 9 944
    Points
    9 944
    Par défaut
    Et gzip est un algo de compression utilisé par le serveur pour compresser à la volée tes fichiers. La compression gzip ne fait donc pas partie du build process, mais de la configuration serveur ; c'est un paramètre à activer.

  9. #9
    Expert confirmé
    Avatar de rodolphebrd
    Homme Profil pro
    Indépendant
    Inscrit en
    Novembre 2012
    Messages
    2 336
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Indépendant
    Secteur : Conseil

    Informations forums :
    Inscription : Novembre 2012
    Messages : 2 336
    Points : 5 289
    Points
    5 289
    Par défaut
    @SylvainPV je le savais, mais maintenant tu viens d'enrichir mon vocabulaire, merci.

    Que penser de Codekite et Gruntjs?

Discussions similaires

  1. combiner les lignes d un fichier
    Par blaise4714 dans le forum Langage
    Réponses: 7
    Dernier message: 09/03/2009, 13h08
  2. Réponses: 4
    Dernier message: 16/08/2003, 13h21
  3. Problème avec les fichiers .JPG
    Par cprogil dans le forum Langage
    Réponses: 5
    Dernier message: 10/06/2003, 15h44
  4. [TP]Lister les fichiers d'un répertoire
    Par nvtitan dans le forum Turbo Pascal
    Réponses: 4
    Dernier message: 21/06/2002, 11h22
  5. Les fichiers d'un projet
    Par Manolo dans le forum C++Builder
    Réponses: 4
    Dernier message: 07/05/2002, 17h51

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo