我有很多JS和CSS文件爲我的網站。爲了儘量減少瀏覽器的連接請求,我將它們加入到一個單獨的php文件中。我使用頭參數來強制文件被緩存。這裏是我如何做的JS案件(CSS是完全一樣的方式):強制緩存通過標頭爲動態生成的JS/CSS文件不適用於所有瀏覽器
<?php
ob_start("ob_gzhandler");
$expires= 60 * 60 * 24 * 14;
header('Pragma: public');
header('Cache-Control: max-age=' . $expires);
header('Expires: ' . gmdate('D, d M Y H:i:s', time() + $expires) . ' GMT');
header('Content-type: text/javascript');
include('file1.js'); echo "\n\n\n";
include('file2.js'); echo "\n\n\n";
/* ... bla bla bla bla ... */
include('fileY.js'); echo "\n\n\n";
include('fileZ.js'); echo "\n\n\n";
ob_end_flush();
?>
這工作得很好在Firefox。對於這個星球上的其他人來說,這些文件並沒有被緩存!它們都很大,所以我有一個惱人的半秒白屏,以便其他瀏覽器爲每個頁面請求重複加載它們。
我想這與標頭的內容長度有關。我嘗試了2-3件事,但我無法做到這一點。有什麼建議麼?
預先感謝您。 任何幫助表示感謝。
謝謝xPheRe ...我是'那'接近實現某種方式來自動加入文件。在途中,我發現文件在所有地方都緩存。只需花時間從DOM解析,因爲它相當長。 – StelArian 2010-10-01 13:09:11