我们有一些软件可以重新创建javascript文件.我们需要能够在不刷新页面的情况下将它们重新加载到DOM中.这意味着原始javascript文件(已由浏览器加载)已更改.通常刷新浏览器会解决这个问题,但由于其他控件中的状态丢失,我们无法做到这一点.
我对此的搜索只返回了使用javascript刷新浏览器的结果,这不是我想要的.
是否可以重新加载javascript文件而无需使用JavaScript刷新浏览(没有JQuery/Angular或任何第三方库/框架等)?
如果您打算提供数据或新的小部件:
香草AJAX简单而无处不在.去做.
如果你不喜欢它,无论出于何种原因,如果你只是从你控制的盒子中提取新数据,你也可以试试JSONP.
var s = document.createElement('script');
s.src = 'path/to/script-that-injects-data-or-NEW-widgets.js';
document.body.appendChild(s);
Run Code Online (Sandbox Code Playgroud)
如果您打算"升级"页面或替换功能:
只是不要这样做.虽然您可以轻松添加新脚本,但是如果没有大量的簿记,您将无法可靠地"清理"旧脚本或变量的页面.除非你的脚本非常非常简单,否则你可以期待很多麻烦.
更好的解决方案是通知用户升级,要求他们刷新页面,并确保您的应用程序可以快速重新初始化到之前的状态.
最终,如果您想要就地"升级"应用程序,那么无论如何您都需要在幕后刷新所有内容.这意味着您需要知道如何重建所有内容以匹配现有/先前状态.而且,你可以做到这一点.但是,刷新页面会更容易,这样可以更好地确保干净,兼容的状态,而不会大惊小怪.