2011-11-06 99 views
0

我緩存一個動態的PHP頁面ob_start();。它會緩存所有的html輸出;但部分html輸出不是靜態數據,例如,會員信息通過登錄從$ _SESSION中出來。我怎樣才能跳過緩存的一部分的HTML?我的意思是如何繼續在緩存的html中運行php代碼?如何避免緩存會員信息

我能想到的唯一方法就是從html中間開始ob_start();

<html> 
<head> 
meta data 
</head> 
<body> 
member info (e.g. Welcome USERNAME) 
------ start caching from here to the end 
ob_start(); 
. 
. 
. 
</html> 

它是唯一的方法嗎?

+0

「這種方式」也不起作用。實際上,這是沒有意義的。 –

回答

1

一種方法是將動態部分留在緩存中爲空,但有一個包裝div,例如

<div id='member_info'></div> 

現在您可以在文檔加載中使用javascript填充動態部分。例如,使用jquery,

$(document).ready(function() 
{ 
    var member_info_html = ''; //--generated dynamically with php 
    $('#member_info').html(member_info_html); 
}); 
+0

非常微妙的把戲! :) – Googlebot

0

如果您有動態頁面,則無法將其緩存爲靜態文件。
只是不要這樣緩存它。

無論如何,我懷疑你是否需要任何緩存。