| Voir le sujet précédent :: Voir le sujet suivant |
| Auteur |
Message |
Smeagol Copix User

Inscrit le: 06 Aoû 2007 Messages: 14 Localisation: Lyon
|
Posté le: Mar Oct 06, 2009 1:27 pm Sujet du message: Tag include js |
|
|
Travaillant actuellement sur une application très lourde niveau JS, j'aimerais faire plusieurs fichiers JS séparées.
Le problème est que je ne trouve pas très cool d'inclure tous mes fichier JS séparément dans l'entête.
Je pensait donc a un tag simple du nom de copixjsinclude au quel on pourrait passer en paramètre une liste de fichier JS en ressource. Se dernier les concaténerai et renverrait le tous dans une seul et même page.
exemple:
Le tag génère le code suivant
| Code: |
<script type="text/javascript" src="monsite.com/index.php/generictools/javascript/mutilplejs?session_page=1" id="mutilplejs1" ></script>
|
le session_page serait l'identifiant pour l'AjaxSession permétant de retrouver la list des fichier JS a concaténer.
/-----------------------------/
Pour aller plus loin encore dans se tag. Il pourrait rajouter trois options..
- La première générer un fichier js dans le cache copix pour des gain de perf.
- Une option permettant compresser le code js générer. Pour un téléchargement plus rapide. (pour mieux me cerner on trouve parfois des librairies js en version packer)
- La troisième parcourir chaque fichier JS et chercher se patron :
| Code: |
[MON DÉBUT DE JS]
//INCLUDE "mon2emeJS.js"
[MA FIN DE JS]
|
Le 2 eme fichiers serait alors inclut à l'emplacement
/-----------------------------/
Voila dite moi se que vous pensé de se tag. Je le pense complexe. Un tag n'est peut être pas adapter un module indépend le serait peut être mieux. Dans tous les cas cela permettrais de découper du code js en plusieurs fichiers d'une manière simple et rapide. Votre avis ? |
|
| Revenir en haut de page |
|
 |
Steevan Copix Team

Inscrit le: 02 Juil 2007 Messages: 954 Localisation: Lyon 8
|
Posté le: Mar Oct 06, 2009 1:39 pm Sujet du message: |
|
|
c'est une idée que goulven m'a soumise y'a un bout de temps déja. je l'ai codé y'a 2 ou 3 jours chez moi, mais pas commité. vu les implications que ça peut avoir, je préfère tester à fond le code avant de balancer ça dans le SVN, et de faire péter un plomb aux développeurs avec des soucis de JS
d'ailleurs, le but n'était pas "de pas être cool d'intégrer plusieurs JS", c'était dans l'idée de gagner en requêtes HTTP (qui peuvent facilement monter à 10 / 15 rien que pour récupérer les JS, plugins mootools, divers CSS, etc).
je te tiens au courant par ce topic quand j'ai commité. |
|
| Revenir en haut de page |
|
 |
Steevan Copix Team

Inscrit le: 02 Juil 2007 Messages: 954 Localisation: Lyon 8
|
Posté le: Mer Oct 14, 2009 11:21 am Sujet du message: |
|
|
j'ai commité un premier test de concaténation pour les JS et CSS.
http://svn.copix.org/changeset/5925
http://svn.copix.org/changeset/5926
http://svn.copix.org/changeset/5927
http://svn.copix.org/changeset/5928
http://svn.copix.org/changeset/5929
pour tester, il suffit de mettre CopixConfig::instance ()->copixhtmlheader_concatCSS et copixhtmlheader_concatJS à true. normalement tous les liens vers des CSS et JS ajoutés via CopixHTMLHeader devraient être concaténés dans une seule adresse (concat.php?id=XXX).
pour info, entre les js de base, mootoos, ses plugins, et les js des modules, il m'arrive de passer de 20 requêtes HTTP à 1, rien que pour les JS. c'est loin d'être négligeable
pour la compression, j'y réfléchit (je viens de voir que pour des projets autres que le core de copix, on peut atteindre 12 000 lignes de JS ). c'est pas un truc facile à faire  |
|
| Revenir en haut de page |
|
 |
Steevan Copix Team

Inscrit le: 02 Juil 2007 Messages: 954 Localisation: Lyon 8
|
Posté le: Mer Oct 14, 2009 12:59 pm Sujet du message: |
|
|
ajout d'un header de cache pour ne pas retélécharger à chaque fois le résultat de la concaténation :
http://svn.copix.org/changeset/5931 |
|
| Revenir en haut de page |
|
 |
|