刷新JS文件而不刷新页面

Mar*_*rey 2 javascript partial-page-refresh page-refresh

有什么方法可以强制浏览器仅刷新(重新下载)JS资源,而不刷新整个页面?任何Web浏览器中的解决方案都可以。当然,与浏览器无关的解决方案将是最好的。

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

Mar*_*rey 5

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

$.getScript("http://example.com/path/to/your/file.js");
Run Code Online (Sandbox Code Playgroud)

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

如果要将所有内容都放在一个文件中,则可以通过以下方法清除旧的绑定,然后再加载新文件:

$("*").off();
Run Code Online (Sandbox Code Playgroud)

  • 做工精美。请注意,您提供的 url 不必是绝对的。它可以只是相对的,例如 $.getScript("file.js"); (2认同)