3

ajax にフォールバックして、websockets を使用してアプリケーションを開発しています。

ほとんどのロジックは、アプリケーション、モデル、ビューなどのクライアント側にあります。

開発中は、小さな変更を加えたり、リフレッシュしたりする必要があることがよくあります。私がこれを行う方法は、基本的にアプリケーション全体を再起動するハード ブラウザーの更新です。

これには時間がかかる場合があります。手順は次のとおりです。

  • サーバーから 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 が即座にリセットされるため、完全に更新する必要はありません。一歩外へ。

多くの場合、これでは十分ではありません。新しいコンテンツも必要なので、次のことを行いたいと考えています。

質問

  • Websocket 接続を保持するものを除いて、ページ上のすべての JS ファイルをアンロードする必要があります。
  • これらのファイルに関連付けられているすべての DOM 要素、オブジェクト、イベントを削除する必要があります。
  • サーバーから新しい JS ファイルを取得する必要があります。
  • それらをページにロードし、onload アクションを起動します

CSS に使用するスニペットを使用してみましたが、同じトリックは実行されません。誰にもアイデアがありますか?

4

1 に答える 1

2

live.jsはあなたの要求に部分的に一致するかもしれないと思います

于 2012-04-17T00:51:40.323 に答える