2011-11-06 63 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

如果您有动态页面,则无法将其缓存为静态文件。
只是不要这样缓存它。

无论如何,我怀疑你是否需要任何缓存。