2012-01-29 37 views
1

我的header.php文件包含在我的所有腳本中,幷包含一個基於twitters引導樣式表的工具欄。每次頁面加載時,頁面加載時都會閃爍。我認爲默認情況下頭部緩存了,但看起來並不是這樣。有沒有辦法強制它使用緩存?我可以緩存我的頭文件嗎?

文件的頭部看起來像這樣:

<?php if (!isset($_SESSION)) session_start(); ?> 

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html> 
<head> 

<title><?php echo($title); ?></title> 
<?php if (isset($meta)) {echo($meta);} ?> 

<!-- Le HTML5 shim, for IE6-8 support of HTML elements --> 
<!--[if lt IE 9]> 
<script src="http://html5shim.googlecode.com/svn/trunk/html5.js"></script> 
<![endif]--> 

<!--[if IE 6]> 
<link rel="stylesheet" type="text/css" href="css/ie6.css" /> 
<![endif]--> 

<link rel="stylesheet" href="css/bootstrap.css" /> 

<link rel="icon" type="image/x-icon" href="favicon.ico" /> 

<script type="text/javascript" src="http://code.jquery.com/jquery-1.7.min.js"></script> 

<style type="text/css"> 
/* Override some defaults */ 
<?php if (isset($extra_styles)) {echo($extra_styles);} ?> 


</style> 

</head> 

回答

0

你到底希望得到緩存?瀏覽器無法在一個頁面上緩存HTML的子集,以便在後續頁面中使用;它只是不這樣工作。瀏覽器整體緩存文件,無論它們是由PHP生成的HTML頁面,Javascript源代碼還是圖像。

如果您的標題在所有頁面上都是相同的,因爲它是由相同的include'd PHP文件生成的 - 瀏覽器在服務之前不知道您的網絡服務器在處理不同的PHP文件。瀏覽器只是將頁面的HTML作爲一個整體來解釋它。

+0

基本上只是頁面頂部的工具欄 – Paul 2012-01-29 02:29:57

1

有不同類型的緩存:

客戶端緩存
如果你的意思是客戶端緩存,則沒有。客戶緩存單個內容,如圖像和HTML文件,但不是其中的一部分。沒有花哨的HTML標籤或類似的東西來告訴瀏覽器要緩存哪些特殊部分。

服務器緩存
服務器緩存意味着服務器保留在內存中的一些頻繁訪問的內容,以減少I/O和節省處理時間。您可以隨時將您的HTML標頭部分緩存在RAM中。不幸的是,我不知道如何在PHP中做到這一點。

相關問題