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

3
有没有方法可以强制浏览器只刷新(重新下载)JS资源,而不刷新整个页面?在任何Web浏览器中都可以解决。当然,独立于浏览器的解决方案是最好的。
背景: 我们的应用程序在同一页上有多个屏幕。在一个屏幕上执行某些操作后,AJAX获取另一个屏幕。由于页面大量使用JS,我经常需要更改其JS资源。在刷新页面以获取修复后的JS之后,我必须经过所有先前的屏幕,才能到达我当前正在调试的屏幕。

我认为如果你能做到这一点,你需要告诉浏览器“重新运行”文件以更新本地上下文。Ajax请求会自动执行此操作,但它们不易于调试。 - J E Carter II
1个回答

10

你可以使用jQuery来实现这个功能。在Firefox中,你可以直接将以下代码输入到Firebug控制台中:

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

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

如果您希望将所有内容放入一个文件中,则可以通过以下方式在加载新文件之前清除旧的绑定:

$("*").off();

2
运行得非常好。请注意,您提供的URL不需要是绝对的。它可以是相对的,例如:$.getScript("file.js"); - Paul Chris Jones

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接