我可以缓存我的头文件吗?

时间:2012-01-29 02:06:22

标签: php html browser-cache

我的header.php文件包含在我的所有脚本中,并包含一个基于twitters bootstrap样式表的工具栏。每次加载页面时,页面加载时都会闪烁。我假设标头默认是缓存但它似乎不是。有没有办法强制它使用缓存?

文件的head部分如下所示:

<?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>

2 个答案:

答案 0 :(得分:1)

有不同类型的缓存:

客户端缓存
如果你的意思是客户端缓存,那么没有。客户端缓存单个内容,如图像和HTML文件,但不是其中的一部分。没有花哨的HTML标签或类似的告诉浏览器缓存哪个特殊部分。

服务器缓存
服务器缓存意味着服务器将一些经常访问的内容保存在RAM中以减少I / O并节省处理时间。您始终可以将HTML标题部分缓存在RAM中。不幸的是我不知道如何在PHP中这样做。

答案 1 :(得分:0)

您希望缓存到底是什么?浏览器无法在一个页面上缓存HTML的子集,以便在后续页面中使用;它只是不起作用。浏览器将文件作为一个整体缓存,无论它们是PHP生成的HTML页面,Javascript源代码还是图像。

如果您的标题在所有页面上都相同并不重要,因为它是由相同的include'PHP文件生成的 - 浏览器不知道您的网络服务器在使用不同的PHP文件之前做了什么送达。浏览器只是整个页面的HTML,并解释它。