2012-01-29 65 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中做到这一点。

相关问题