我需要使用 http 标头将 javascript 和页面详细信息存储到浏览器缓存中。
谁能帮我得到这个?
非常感谢
您可以使用 HTML 元:
<meta http-equiv="Cache-control" content="public">
或者
PHP 标头:
header("Cache-Control: public"); // HTTP/1.1
header("Expires: Tue, 08 Oct 2013 00:00:00 GMT"); // Date in the future
来源:【PHP 手册】
我认为您想要缓存的确切内容有些混乱。这里提到了两个项目 -
要缓存第一项(页面),使用 PHP 设置标题应该缓存页面的 HTML 内容。
header("Cache-Control: public");
header("Expires: Tue, 08 Oct 2013 00:00:00 GMT"); // Date in the future
这将缓存页面的内容,但不一定缓存它引用的文件。例如,如果您的 HTML 文件中有此代码 -
<script src="http://domain/some/js/file.js" type="javascript" ></script>
那么该文本将被缓存但不是file.js
。要手动设置这些外部文件的缓存,您需要使用 PHP 为它们提供服务并手动设置标头。你会想做类似的事情 -
<script src="another_file.php" type="javascript" ></script>
现在,another_file.php
您将要加载 JavaScript 文件并使用适当的标头“回显”它 -
$file = '/absolute/path/to/your_script.js';
if (file_exists($file)) {
header('Content-Type: text/javascript');
header('Content-Length: ' . filesize($file));
ob_clean();
flush();
readfile($file);
exit();
}
简单地在标题中设置过期日期怎么样 -
header("Cache-Control: public");
header("Expires: Tue, 08 Oct 2013 00:00:00 GMT"); // Date in the future
应该注意的是,现代浏览器在缓存资源方面做得很好。通常这些方法用于强制重新加载资源;防止浏览器缓存。