JavaScript文件不更新,不pipe我做什么

我有一个外部的JavaScript文件,无论是在FireFox或Chrome浏览器,所有的浏览数据是否清除,不会更新,无论如何。 我相信当我对我的文件进行备份时发生了一些事情,我只是在名称的末尾添加了“_thedate”。 然后将其另存为原始名称。

现在我似乎无法摆脱旧的JS,除非我更改文件的名称,我真的不想做,或者将脚本添加到PHP页面,它拥挤它。

任何人都知道这个解决scheme?

你确定你正在链接到相同的文件,然后编辑同一个文件?

在某些浏览器上,可以使用CTRL F5强制刷新。

萤火虫也有一个净选项卡与“禁用浏览器caching”

2017年更新:

如果您使用Google Chromedebugging器,则相同,您可以转到networking部分,并确保在“debugging器”面板的“设置”中选中“禁用caching(DevTools处于打开状态)”。

另外,当您链接JavaScript文件时,请使用

 <script src="my-js-file.js?v=1"></script> 

v=2 ,等等,当你一定要刷新文件。 或者你可以去控制台,并做一个Date.now()并获得一个时间戳,如1491313943549 ,并使用

 <script src="my-js-file.js?t=1491313943549"></script> 

一些build筑工具会自动为你做,或者可以configuration这样做,使其如下所示:

 <script src="main.742a4952.js"></script> 

这本质上会破坏caching。

请注意 ,当您使用v=2t=1491313943549main.742a4952.js ,您也有优势,对于您的用户,他们肯定也会获得更新的版本。

如何在标签中添加“?2”?

<script src="a.js?2"></script>

服务器应该返回相同的文件有或没有'?2',但浏览器应该看到它作为一个不同的文件,并重新下载。 只要文件发生更改,您就可以更改此查询string。

改编自: http : //blog.httpwatch.com/2007/12/10/two-simple-rules-for-http-caching/

我以前遇到过这个问题,这很令人沮丧,但是我发现了一个解决方法。 inputjs文件的完整地址(即yourhost.com/javascript.js)并加载它。 您可能会看到旧版本的加载。 然后点击f5刷新页面,你会看到新的版本加载。 现在,js文件将在您的caching中进行更新,代码应按预期运行。

我使用的解决scheme是。 使用Firefox
1.使用Web开发人员 – > Web控制台
2.在新选项卡中打开java脚本文件。
3.刷新新标签,你应该看到你的新代码。
4.刷新原始页面
你应该看到你的改变。

重新命名您的js文件到其他东西暂时。 这是我唯一的工作。

浏览器caching最好的方法是在js文件的path上附加一个随机数。

伪代码示例:

 // generate a random number int i = Random.Next(); echo "<script src='a.js?'" + i + "></script>"; 

这将确保您的浏览器始终重新加载文件,因为它认为这是一个不同的文件,因为在URL中的随机数。

服务器将始终返回文件并忽略“?”后面的内容。

你100%确定你的浏览器甚至加载脚本? 在Firefox中转到您的页面,并使用Firebug中的控制台检查脚本是否已加载。

我有同样的问题一段时间,并设法弄清楚…而我的情况是因为我有2个相同的函数名称的JavaScript。

晚会有点晚,但是如果你把这个放在你的html中,它会让你的网站不能更新caching。 加载网站需要一些时间,但为了debugging目的,我喜欢它。 采取从这个答案: 如何以编程方式清空浏览器caching?

 <meta http-equiv='cache-control' content='no-cache'> <meta http-equiv='expires' content='0'> <meta http-equiv='pragma' content='no-cache'>