Bonjour
J'ai un vieux projet dans ya plusieurs chargements de ficheir Javascript.
Pour optimiser un minimum le temps de chargement il faudrait combiner tous les Js en un seul fichier et compresser le code.
Il faudrait que ca se fasse a la volée et/ou avec du cache.
Plutôt que de repasser dans touts les pages du site (c'est pas du tout MVC bien sur) je pensais faire la chose suivante :
- rediriger avec Apache /htaccess les URL <script src="...."> vers un script PHP qui tamporise, combine, compresse, etc...
- chacune de ces URL renvoit vide.
- dans le footer.php, seul ficheir inclus dans toutes les page je met un <script src="js-common.min.js"> qui lui fait un echo de tout le Javascript combiné et compressé précédemment.
A la question "est ce que c'est propre" : je repond que je sais pertinement que non mais faut que je le fasse quand meme...
J'ai fait le code suivant mais ya plein de bugs :
- tous les JS ne sont pas combinés
- l'ordre de chargement des contenus ne respecte pas du tout celui de la page web, donc ca coince sur les dépendance.
En gros ca donne ca côté code :
une idée ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21 session_start(); $basedir = dirname(__FILE__).'/../../'; if (!isset($_SESSION['jsfiles'])) $_SESSION['jsfiles'] = ''; if (basename($_GET['file']) != 'js-common.min.js') { $filepath = realpath($basedir.dirname($_GET['file']).'/'. basename($_GET['file'])); if (is_file($filepath)) { ob_start(); require_once $filepath; $_SESSION['jsfiles'].= "\n // [INCLUDED FILE : $filepath ] \n".ob_get_clean()."\n"; } } else { echo $_SESSION['jsfiles']; unset($_SESSION['jsfiles']); }
merci
Partager