Bram
Legacy Member
Hey
Ik zit met een redelijk groot project waar er afhankelijk van de pagina verschillende js files ingeladen worden.
Aangezien dat uiteindelijk toch om een hoop extra requests gaat, dacht ik een .php script te gebruiken dat de files inleest, in een pagina steekt en van daar uit leest, in het gedacht dat de pagina dan sneller ging laden.
Ik heb nu echter eens een testje gedaan, 20 keer de load times gemeten met en zonder script, wat blijkt, als ik de files apart inlaadt, laad de pagina zogezegd 3.5% sneller dan als ik het script gebruik. Ik zou denken dat het drastisch verlagen van aantal requests allerminst een positieve invloed zou hebben, maar blijkbaar niet...
Mensen die hier ervaring mee hebben? Tips hebben?
Hieronder het script:
Ik zit met een redelijk groot project waar er afhankelijk van de pagina verschillende js files ingeladen worden.
Aangezien dat uiteindelijk toch om een hoop extra requests gaat, dacht ik een .php script te gebruiken dat de files inleest, in een pagina steekt en van daar uit leest, in het gedacht dat de pagina dan sneller ging laden.
Ik heb nu echter eens een testje gedaan, 20 keer de load times gemeten met en zonder script, wat blijkt, als ik de files apart inlaadt, laad de pagina zogezegd 3.5% sneller dan als ik het script gebruik. Ik zou denken dat het drastisch verlagen van aantal requests allerminst een positieve invloed zou hebben, maar blijkbaar niet...
Mensen die hier ervaring mee hebben? Tips hebben?
Hieronder het script:
PHP:
<?php
$Files = explode('|', $_GET['f']); // all the files in an array
$Success = true; // will be used to display a 404 if a file isn't found
$latestLMT = 0; // last timestamp one of the files was changed
$JS = ""; // all the javascript
foreach($Files as $File )
{
if (file_exists($File))
{
$last_modified_time = filemtime($File);
if($last_modified_time > $latestLMT) // file was modified after previous file
{
$latestLMT = $last_modified_time;
$etag = md5_file($File);
}
$handle = fopen($File, "r"); // open file
$JS .= fread($handle, filesize($File))."\n"; // add it to string, with a new line
fclose($handle);
}
else
{
$Success = false; // file doesn't exist, display 404
}
}
if($Success)
{
//to show the header as text/javascript
header("Content-type:text/javascript");
header("Last-Modified: ".gmdate("D, d M Y H:i:s", $latestLMT)." GMT"); // set last modified and etag of last changed js file
header("Etag: $etag");
if (@strtotime($_SERVER['HTTP_IF_MODIFIED_SINCE']) == $latestLMT ||
trim($_SERVER['HTTP_IF_NONE_MATCH']) == $etag) {
header("HTTP/1.1 304 Not Modified");
exit;
}
print $JS;
}
else
{
header("HTTP/1.0 404 Not Found");
}
// EOF loadJS.php