我正在使用 websockets 开发一个应用程序,并使用 ajax 后备。
大多数逻辑驻留在应用程序、模型、视图等的客户端。
在开发过程中,我经常需要做一些小改动,并进行刷新。我这样做的方法是通过硬浏览器刷新,这基本上会重新启动整个应用程序。
这可能需要一些时间,这些是步骤:
- 从服务器获取 index.html
- index.html 加载所有的 javascript 文件
- javascript 创建应用程序并启动 websocket
- 在成功的 websocket 连接上,服务器将发送初始化数据
- 客户端收到来自服务器的初始化数据并生成页面
在正常情况下这是可以的,因为一旦加载应用程序,就不会再刷新了。
但这在开发过程中很痛苦,所以我想到了以下解决方案:
进行 CSS 更改后,我运行以下脚本:
softreset: function(){
var queryString = '?reload=' + new Date().getTime();
$('link[rel="stylesheet"]').each(function () {
this.href = this.href.replace(/\?.*|$/, queryString);
});
}
这会立即重置所有 CSS,因此我不需要完全刷新。一步出路。
很多时候这还不够,我还需要新的内容,所以我想做以下事情:
问题
- 我需要卸载页面上的所有 JS 文件,但保存 websocket 连接的文件除外。
- 与这些文件关联的所有 DOM 元素、对象、事件都需要删除。
- 我需要从服务器获取新的 JS 文件。
- 将它们加载到页面中,并触发 onload 操作
我尝试使用我用于 CSS 的代码片段,但它并没有起到同样的作用。有人有想法吗?