3

我正在使用 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 的代码片段,但它并没有起到同样的作用。有人有想法吗?

4

1 回答 1

2

我认为live.js可能部分符合您的要求

于 2012-04-17T00:51:40.323 回答