php - javascript 文件没有被缓存?

标签 php javascript caching

我正在尝试优化我的网络应用程序,不幸的是最终得到了大约 450K 的 javascript 文件大小 - 压缩后也是如此 [我需要一段时间才能重做 javascript,但在那之前我必须上线] - 我最初制作了一些小的 javascript 库来使用。我所做的是我有一个 php 文件,其中包含所有 javascript 文件,然后我包含了我的 php 文件,如下所示:

<script language="js/js.php"></script>

问题是,我希望我的文件在第一次加载时会被缓存,但似乎每次我刷新页面或返回时,文件都会从服务器重新加载 - 我使用 firebug 检查了这一点。是否还需要添加其他内容以确保我的文件缓存在用户端......或者我是否误解了缓存的概念?

最佳答案

您需要在 php 中设置一些 header 以确保文件被缓存。

在 js.php 的顶部放置:

ob_start("ob_gzhandler");

$expires = 2678400; // 1 month in seconds
header("Pragma: public");
header("Cache-Control: maxage=".$expires);
header('Expires: ' . gmdate('D, d M Y H:i:s', time()+$expires) . ' GMT');

这将动态添加基本缓存 + gzip 压缩。

关于php - javascript 文件没有被缓存?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3332707/

相关文章:

javascript - 将数组值推送到第一个索引

php - 如何将 Amazon MWS 响应中的 UTF-8 转义字符串转换为正确的 UTF-8?

php - 制作排行榜排名,将记录放入 SQL 数据库中

php - 如何将 array_map 与键和值一起使用,但返回具有相同索引(不是 int)的数组?

c++ - 大对象线程间通信的最佳实践

http - 我应该指定 "Vary: If-None-Match, If-Modified-Since"吗?

javascript - 为什么在jquery中缓存ID时使用索引0?

php - 从数据库获取数据的函数

javascript - 当数据库返回值时如何更新我的html?

javascript - 在 jQuery 动画中增加负 css 值