我正在为一个网站开发JavaScript,使用Firefox进行开发,当我刷新页面时,我看不到我的更改。 JavaScript文件位于外部文件中。我重新加载并刷新了几次页面,但旧的JavaScript文件仍然被缓存。最后,我直接在浏览器中加载了JavaScript页面,看到了旧脚本,点击“重新加载”,看到了我的更改。
如何清除缓存的外部JavaScript文件?当我告诉客户端进行了更改时,我也需要知道这一点,以便他们不会看到旧的缓存功能。
答案 0 :(得分:14)
在Firefox中,您可以安装名为 Web Developer Toolbar 的插件,该插件具有appcache clear
命令
我认为没有办法以编程方式进行,但您可以使用类似
的内容给浏览器提示<script type="text/javascript" src='js/my.js?x=<?php echo rand(0,100) ?>'></script>
答案 1 :(得分:13)
在Firefox中绕过缓存一次:
某些网络托管服务执行缓存页面服务器端。绕过缓存时,Web浏览器将发送一个标头告诉服务器它不应该使用缓存数据进行响应。
答案 2 :(得分:9)
浏览器具有面向用户的工具来清除缓存。通常它是某个菜单选项。您无法强制清除缓存。
可以做的是安排从根据版本号(或其他)不同的URL加载脚本:
<script src='http://your.site.com/js/big_script.js?version=2'></script>
现在,当您更新代码时,您将更新使用它的页面:
<script src='http://your.site.com/js/big_script.js?version=3'></script>
这是一个不同的URL,它不会在缓存中。
答案 3 :(得分:7)
一种非常流行的技术是使用查询字符串参数。可能看起来像
<script src="http://www.somedomain.com/foobar.js?v=1></script>
如果您将此行更改为v=2
,则浏览器会重新加载以前缓存的脚本。
答案 4 :(得分:1)
Shift-reload经常会更积极地清除缓存。但是,你真的不想依赖于此。一种好的技术是对外部Javascript的文件名进行版本控制,并在转动时更新引用它们的HTML。这样,您也可以更好地依赖缓存(例如,在Web服务器中将缓存标头设置为“public”,并指定很长的Expires时间。)
答案 5 :(得分:0)
禁用js缓存: Dev工具(F12)>网络>禁用缓存
然后刷新页面: F5
答案 6 :(得分:0)
禁用 Angular.js 分解:开发工具 (F12) > 调试器 > [设置图标] > 取消选中 Source Maps。
然后您可能需要重新启动 Firefox。
Source Maps 阻止我调试修改后的应用程序。