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=2
或t=1491313943549
或main.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'>