Pour optimiser ça, il est possible de concaténer automatiquement toutes ces pages en une seule, pour ainsi réduire les appels.
Et pour éviter de devoir faire un script par "type" d'appel, ce script prend en paramètre les fichiers à inclure.
J'utilise ce script conjointement à celui-ci, pour la compression et la mise en cache.
Le script:
<?php
/*
* Fichier de mise en commun des scripts.
* Ici, c'est du JS
*/
include 'script.php' // ça, c'est le script dont je parle plus haut, qui se trouve aussi sur le forum.
header("Content-type: text/javascript");
//Pour le css:
//header("Content-type: text/css");
// instantiation du gestionnaire de sortie..
$out = output::get_instance("clean");
// ajout de l'observateur de compression GZ
$out_gz = new gzip();
$out->add($out_gz);
// ajout de l'observateur/gestionnaire de cache
$l_cache = new little_cache(md5( $_SERVER["REQUEST_URI"]));
$out->add($l_cache);
// le format de l'url est fichier.php?s[0]=fichier1&s[1]=fichier2&s[2]=fichier3 etc...
// $_GET["s"] est donc un tableau qui contient l'intitulé, sans extension, des fichiers à charger
$styles = $_GET["s"];
foreach ($styles as $style)
{
// ici je n'autorise que certains carctères, c'est léger comme protection, mais il me semble que ça suffit.
$style=preg_replace("#[^\.A-Za-z0-9_]#","",$style);
// J'ajoute simplement le contenu du fichier à ce qui est renvoyé.. rien de très complexe.
if ($echo = file_get_contents("./".$style.".js")) echo $echo."\n";
}
Du côté html, je me retrouve donc avec un unique LINK:
Code : Tout sélectionner
<link rel="stylesheet" href="fichier.php?s[0]=fichier1&s[1]=fichier2&s[2]=fichier3" type="text/css" media="screen" title="screen" >