首页 > 解决方案 > 如何在 Javascript 中使用 Cache-Control?

问题描述

我想使用 Javascript 告诉浏览器不要缓存我的网站。写在这个 JavaScript 文件上的代码很简单

function calcURL(urlIn)
{
    Cache-Control: no-cache, max-age='3600'
}

浏览器一直给我一个错误:

未捕获的 SyntaxError:意外的标记“:”

我试过添加;在行尾。有人可以告诉我问题是什么吗?

标签: javascripthtmlcache-control

解决方案


您在 JavaScript 中使用了错误的方法。此外,在 JS 运行告诉浏览器不要缓存之前为时已晚。

您可以阅读本文以了解有关缓存控制的更多信息

缓存控制配置

HTTP Cache-Control 标头可以在服务器上实现,甚至可以添加到代码中。以下是如何在 Apache、Nginx 或 PHP 代码中实现 Cache-Control 的示例。

阿帕奇

可以将以下代码段添加到您的 .htaccess 文件中,以告诉服务器将 Cache-Control 标头的 max-age 设置为 84600 秒,并将列出的文件设置为 public。Expires 和 Cache-Control 标头也可以通过使用 mod_expires 模块包含在 Apache 中。

<filesMatch ".(ico|pdf|flv|jpg|jpeg|png|gif|js|css|swf)$">
    Header set Cache-Control "max-age=84600, public"
</filesMatch>

Nginx

可以将此片段添加到您的 Nginx 配置文件中。下面的示例使用 Cache-Control 标头指令 public 和 no-transform,并将过期设置设置为 2 天。

location ~* \.(js|css|png|jpg|jpeg|gif|ico)$ {
    expires 2d;
    add_header Cache-Control "public, no-transform";
}

PHP

Cache-Control 标头也可以直接添加到您的代码中。此示例演示如何使用 PHP 标头来包含 Cache-Control 设置的 max-age 为 1 天。

header('Cache-Control: max-age=86400');

总结
Cache-Control 是一个强大的 HTTP 标头,用于使用浏览器和中间缓存加速网站。虽然它提高网站速度的能力不仅仅是因为它在帮助减少私人信息的脆弱性方面也非常有用。您选择应用于 Cache-Control 指令的设置取决于所传递信息的性质以及这些资产的期望到期时间。


推荐阅读