Firefox中的F5和Ctrl-F5与JavaScript事件有什么区别?

时间:2011-10-14 13:38:10

标签: javascript ajax firefox page-refresh

当您尝试此公开页面时:http://slim.nl/shop/default.aspx(更新:同时此网站已更改,以至于此问题的行为无法再进行测试),您会注意到一个菜单栏。如果按 F5 ,该栏中的菜单将消失。通过浏览器中的“后退”按钮访问该页面时也是如此。它只发生在Firefox上(见3-7版本)。使用 Ctrl - F5 ,再次出现菜单栏。

据我所知,加载页面时触发的所有JavaScript事件(包括任何AJAX周期)也应在使用 F5 刷新页面或通过后退按钮到达时触发。这里发生了什么?

我想从程序员的角度知道 F5 Ctrl - F5 之间的区别,最好是更通用这个案例。当然,除非它是Firefox中的错误。

enter image description here

4 个答案:

答案 0 :(得分:10)

Ctrl + F5 清除浏览器中的缓存文件,其中 F5 只刷新页面,但它使用缓存的文件。例如,假设您加载页面对css文件进行更改并按刷新或 F5 上传。页面只是刷新并且没有获取新修改的css文件命中 ctrl + F5 它会清除页面的缓存并取出再次从服务器文件。然后,这将加载将显示更改的新css文件。

答案 1 :(得分:6)

Firefox不仅缓存已加载的文件,还缓存对页面所做的更改(用户输入甚至是对JavaScript所做的属性的更改)。 Check this。因此,如果您的菜单取决于某些属性,则可以通过单击 CTRL + F5 hard-refresh

答案 2 :(得分:2)

ctrl + F5只会强制忽略缓存。也许你有一个微妙的异步编程错误,只有当你有更快的页面加载时才会出现(由于使用缓存)。

答案 3 :(得分:1)

该问题已通过roll-backing \ js \ dnn.controls.dnnmenu.js文件修复到以前的版本。不知道那里有什么问题(没有时间调试),但无论如何它现在有效:)