【问题标题】:Preventing Cache on JavaScript files防止缓存 JavaScript 文件
【发布时间】:2013-03-07 17:26:44
【问题描述】:

我试图阻止浏览器缓存 2 个 JavaScript 文件。

我尝试使用<META HTTP-EQUIV="CACHE-CONTROL" CONTENT="NO-CACHE">,但没有成功。这是我的<head> 元素代码:

    <head>

<meta charset="UTF-8">
<meta http-equiv="Cache-control" content="NO-CACHE">

<link type='text/css' href='/files/theme/popup_basic.css' rel='stylesheet' media='screen' />

<!-- JavaScript Start -->
<script type="text/javascript" src="/files/theme/gohome.js"></script>
<script type="text/javascript" src="http://192.168.0.149/redirect.js"></script>
<!-- JavaScript End -->

</head>

据我所知,这应该可行。但是redirect.js 文件一直被缓存!

有人知道我做错了什么吗?

【问题讨论】:

  • 为什么要阻止缓存文件?如果您在服务器上生成 HTML,您可以将 GUID 附加到 src 属性,从而生成一个唯一的“文件”,如下所示:&lt;script type="text/javascript" src="http://192.168.0.149/redirect.js?C6324B81-A31F-4167-81AE-AD51F239C328"&gt;&lt;/script&gt;
  • 因为这个文件是重定向的,只有在服务器在线时才需要重定向。当它离线时,用户将停留在该页面。

标签: javascript google-chrome caching


【解决方案1】:

&lt;meta http-equiv="Cache-control" content="NO-CACHE"&gt;,指令 CACHE-CONTROL:NO-CACHE 表示不应使用缓存信息,而应将请求转发到源服务器。

为了防止对每个请求进行缓存,您可能需要在 url 中添加一些随机字符串。 下面的例子是使用javascript动态创建一个脚本标签并在url中添加随机数,然后附加它。

<script language="JavaScript">
 var s=document.getElementsByTagName('script')[0];
 var sc=document.createElement('script');
 sc.type='text/javascript';
 sc.async=true;
 sc.src='http://192.168.0.149/redirect.js?v' + Math.random(); 
 s.parentNode.insertBefore(sc,s);
</script>

如果只想阻止 1 次,只需将一些字符串附加到 src。

<script src="http://192.168.0.149/redirect.js?12345678"></script>

【讨论】:

  • 您不必生成随机数,它可以是使用纯 HTML 的静态类型数。 (见我的回答)。
  • 我正在考虑要防止在每个请求上缓存文件的情况。
  • 好吧,我之前尝试过静态数字,但它们不起作用。这就是为什么我通常使用 PHP 来使用日期。随机数确实是您所需要的。 (我猜。)
  • 那么,你知道如何使用 date.Random numbers 将随机字符串添加到 src,那么你在寻找什么?上述情况,我假设您不会使用任何服务器端语言。
  • @JaceCotton 你指的答案在哪里?
猜你喜欢
  • 2018-04-13
  • 1970-01-01
  • 2016-10-26
  • 1970-01-01
  • 1970-01-01
  • 2020-11-18
  • 2011-11-16
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多