重新加载 JS 文件而不刷新页面

Reload JS file without page refresh

有什么方法可以强制我的浏览器只刷新(重新下载)JS 资源,而不刷新整个页面? 在任何网络浏览器中的解决方案都可以.当然,独立于浏览器的解决方案是最好的。

背景: 我们的应用程序在同一页面上有多个屏幕。在一个屏幕上执行一些操作后,AJAX 获取另一个屏幕。由于页面大量使用JS,所以我经常需要更改它的JS资源。刷新页面以获取固定的 JS 后,我必须经过所有之前的屏幕才能到达我当前正在调试的屏幕。

您可以为此使用 jQuery。在 Firefox 中,您可以直接将类似这样的内容写入 Firebug 控制台:

$.getScript("http://example.com/path/to/your/file.js");

注意:新脚本是在旧脚本之上下载的。因此,任何初始化页面的 JS 代码都会再次执行,这可能会产生副作用。在有很多 JS 的页面中,将函数和常量的定义放在与页面初始化代码不同的文件中通常是个好主意(比如将事件绑定到元素)。然后你可以使用 getScript() 只获取定义文件。

如果你想把所有的东西都放在一个文件中,你可以在加载新文件之前清除旧的绑定:

$("*").off();