Forums Développement Multimédia

Aller au contenu

fusion de scripts js + optimisation ?

CODE Ajax JQuery EaseJs

6 réponses à ce sujet

#1 dcz.switcher

  • Community Manager
  • PipPipPipPipPipPipPipPip
  • 2533 messages

Posté 30 October 2012 - 18:50 PM

Salut à tous,

Depuis plusieurs mois je développe avec Backbone.js et pour la mise en prod utilise Google Closure.

Le soucis c'est que pour garder de la clarté dans mon code, je sépare les différents éléments de mes applis dans différents fichiers, j'aimerais donc trouver un outil qui me permette de regrouper tous les scripts en un seul avant de passer un coup de Google Closure.

A défaut, vous faites comment pour optimiser le chargement de vos scripts ? Require.js ? autre chose ?

Bon dev à tous
"Ce que l'on conçoit bien s'énonce clairement et les mots pour le dire arrivent aisément"

embryon de site

#2 Goabonga

  • Moderateur
  • PipPipPipPipPipPipPipPip
  • 2724 messages

Posté 30 October 2012 - 19:23 PM

Slt, je sais pas trop quoi te conseiller mais par exemple sur symfony2 y'a un bundle qui fait exactement ce que tu demandes.

http://symfony.com/d...etic/index.html

#3 Badwolf

  • Moderateur
  • PipPipPipPipPipPipPipPip
  • 667 messages

Posté 30 October 2012 - 20:05 PM

perso j'utilise require.js
Haoooooooooooooooooooooooooooooooooooooooooooooou !!!

#4 frangois

    Ceinture Noire

  • Members
  • PipPipPipPipPipPipPip
  • 224 messages

Posté 30 October 2012 - 20:07 PM

grunt.js sert à ça : http://gruntjs.com/

il y a une cible "concat" dans l'install par défaut.

require.js a vaguement à voir avec ça :
- avec grunt.js, tu concatènes dans l'ordre un tableau de fichiers .js
- avec require.js, tu concatènes et require.js trouve tout seul le bon ordre.

Attention :
- ne pas mettre en prod un projet require.js sans le concaténer
- c'est une facilité laissée "pour la période de développement" que de pouvoir inclure require.js et charger les fichiers sans les builder
- ça ne doit pas finir en prod : on builde avant de toute façon

Beaucoup, beaucoup de gens laissent tels quels require.js dans la page et les fichiers non-buildés : c'est dû à une erreur de lecture à cause du titre de la page de la doc qui parle de ça ("Optimizing"). Mais require.js est bien un concaténeur de fichiers, pas uniquement un "émulateur de modules".

D'expérience :
- grunt.js a un footprint plus léger sur le code (moins de boilerplate que require.js, pas d'impact sur la logique du code)
- jquery l'utilise aussi
- three.js procède également sans modules AMD, de manière similaire à grunt.js, mais ils buildent à coups de scripts persos en python

perso j'utilise grunt.js. j'ai commencé par require.js mais j'ai fini par trouvé le footprint sur mon code assez préoccupant. en regardant comment c'était fait dans jquery, three.js, je suis passé sur grunt.js, que je trouve plus "javascript".

yeoman est peut être à tester également : http://yeoman.io/whyyeoman.html. C'est un fork (ou pas ?) de grunt.js intégré désormais dans Webstorm.
Je suis dispo en free-lance. Et j'ai un blog.

#5 dcz.switcher

  • Community Manager
  • PipPipPipPipPipPipPipPip
  • 2533 messages

Posté 31 October 2012 - 00:15 AM

Enorme,

Merci pour vos réponse, je teste tout ça immédiatement !
"Ce que l'on conçoit bien s'énonce clairement et les mots pour le dire arrivent aisément"

embryon de site

#6 dcz.switcher

  • Community Manager
  • PipPipPipPipPipPipPipPip
  • 2533 messages

Posté 31 October 2012 - 10:05 AM

En complément de vos liens (encore merci), j'ai trouvé ce fil de discussion qui aborde le problème sous un autre angle.

En 2-3 mots, plutôt que de vouloir combiner tous les fichiers en 1 seul pour réduire le nombre de requêtes HTTP, il propose de mettre en cache dans le navigateur les fichiers JS (compressés) avec un système de versionning dans les noms des fichiers.

Mais bon, le meilleur moyen de voir ce que ça donne reste encore de tester, je vais commencer avec Grunt ...

Il y est également question de l'iphone qui ne mettrait pas en cache un fichier JS non compressé de plus de 15Ko ...
http://stackoverflow.com/a/1950465

Article ancien, probablement plus d'actualité, voir commentaire suivant.
"Ce que l'on conçoit bien s'énonce clairement et les mots pour le dire arrivent aisément"

embryon de site

#7 frangois

    Ceinture Noire

  • Members
  • PipPipPipPipPipPipPip
  • 224 messages

Posté 31 October 2012 - 10:40 AM

article trop vieux, c'est 1Mb : http://www.yuiblog.c...mits-revisited/

merci pour l'info néanmoins. Bon 1 Mb ça passe encore, mais c'est chaud de pas le savoir.
Je suis dispo en free-lance. Et j'ai un blog.



1 utilisateur(s) li(sen)t ce sujet

0 membre(s), 1 invité(s), 0 utilisateur(s) anonyme(s)