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