我需要使用http标头将javascript和页面详细信息存储到浏览器缓存中。
任何人都可以帮我解决这个问题吗?
非常感谢
答案 0 :(得分:2)
您可以使用HTML meta:
<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 Manual]
答案 1 :(得分:0)
如何简单地在标题中设置过期日期 -
header("Cache-Control: public");
header("Expires: Tue, 08 Oct 2013 00:00:00 GMT"); // Date in the future
应该注意的是,现代浏览器可以很好地缓存资源。通常这些方法用于强制重新加载资源;防止浏览器缓存。
答案 2 :(得分:0)
我认为对于您想要缓存的内容存在一些疑惑。这里引用了两个项目 -
要缓存第一个项目(页面),使用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();
}