0

我需要使用 http 标头将 javascript 和页面详细信息存储到浏览器缓存中。

谁能帮我得到这个?

非常感谢

4

3 回答 3

2

您可以使用 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 手册】

于 2012-10-08T10:53:50.110 回答
0

我认为您想要缓存的确切内容有些混乱。这里提到了两个项目 -

  1. 包含所有 HTML 元素和对外部文件的引用的页面本身。
  2. HTML 文档引用的 JavaScript 文件。

要缓存第一项(页面),使用 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();
}
于 2012-10-08T13:15:51.997 回答
0

简单地在标题中设置过期日期怎么样 -

header("Cache-Control: public");
header("Expires: Tue, 08 Oct 2013 00:00:00 GMT"); // Date in the future

应该注意的是,现代浏览器在缓存资源方面做得很好。通常这些方法用于强制重新加载资源;防止浏览器缓存。

于 2012-10-08T10:53:42.823 回答