我正在使用 websockets 开发一个应用程序,并使用 ajax 进行回退。
大部分逻辑驻留在应用程序、模型、 View 等的客户端
在开发过程中,我经常需要做一些小的改动,然后进行刷新。我这样做的方法是通过硬浏览器刷新,这基本上会重新启动整个应用程序。
这可能需要一些时间,这些是步骤:
- 从服务器获取index.html
- index.html 加载所有 javascript 文件
- javascript 创建应用程序并启动 websocket
- 在成功的 websocket 连接上,服务器将发送初始化数据
- 客户端收到来自服务器的初始化数据并生成页面
在正常情况下这是可以的,因为一旦加载应用程序,就不会再刷新。
但是这个get在开发过程中很痛苦,所以我想到了以下解决方案:
更改 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 的片段,但它并没有起到同样的作用。有人有想法吗?
最佳答案
我想live.js可能部分符合您的要求
关于javascript - 执行 WebSocket/AJAX 应用程序的 'soft-refresh'(仅 JS 和 CSS),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10182793/