Max*_*ing 43 javascript internet-explorer internet-explorer-8
我在Vista上使用IE 8,每次更改javascript文件然后开始调试时,我必须按Ctrl + F5才能重新加载我的javascript.有没有什么方法可以让我在开始调试时自动重新加载javascript,但是在浏览网页时不会失去性能提升?
是的,我知道你可能不喜欢IE,但请记住问题不是"什么是最好的浏览器?".
Pao*_*ino 48
在URL末尾添加一个字符串以中断缓存.我经常做(用PHP):
<script src="/my/js/file.js?<?=time()?>"></script>
Run Code Online (Sandbox Code Playgroud)
因此,每当我正在处理它时它会重新加载,然后在它投入生产时将其取下.实际上,我把它抽象出来了一点,但这个想法仍然是一样的.
如果您查看本网站的来源,他们会以类似的方式在网址末尾附加修订号,以便在更新javascript文件时强制更改.
Alc*_*nja 25
Paolo的一般想法(即有效地改变请求uri的某些部分)是你最好的选择.但是,我建议使用更静态的值,例如更改脚本文件时更新的版本号,这样您仍然可以获得缓存的性能提升.
所以这样的事情:
<script src="/my/js/file.js?version=2.1.3" ></script>
Run Code Online (Sandbox Code Playgroud)
或者可能
<script src="/my/js/file.2.1.3.js" ></script>
Run Code Online (Sandbox Code Playgroud)
我更喜欢第一个选项,因为这意味着您可以维护一个文件,而不必不断地重命名它(例如,在源代码管理中维护一致的版本历史记录).当然,任何一个(正如我所描述的那样)都会涉及每次更新include语句,因此您可能想要采用动态的方式来实现它,例如每次部署时用动态替换固定值(使用Ant或其他).
Vad*_*dim 16
当您使用网页或javascript文件时,您希望每次更改时都重新加载它.您可以在IE 8中更改设置,以便浏览器永远不会缓存.
按照这个简单的步骤.
如果您希望在您的浏览器上执行此操作(也就是不强制在您的用户上执行此操作),那么我不会将您的代码设置为不使用缓存.正如何塞所说,有一个表现损失.
而且我不会完全关闭IE上的缓存,因为您访问的每个网站都会失去性能提升.您可以告诉IE始终从服务器刷新特定站点或浏览会话:
或者,对于键盘 - 快捷方式 - philes(像我一样)那里..
注意事项:已经说过了......请记住,无论何时以不同的方式开发/测试将在生产中查看网站,您都有可能获得混合结果.一个很好的例子是这个缓存问题.我们发现了一个问题,即IE缓存了我们的Ajax调用,而不是更新GET方法的结果.如果我们在IE中禁用缓存,我们就不会在开发中看到这个问题,并且会将它部署到这样的生产中.