Webページの一部だけがJQuery AJAXを使用してロード/アンロード/リロードされる動的なWebアプリケーションを作成しています。Javascriptを動的にロード/アンロードする
しかし、ユーザーがWebページを完全に更新せずに長時間(数時間)アプリケーションを実行するとどうなるか心配しています。
たとえば、Map、Shop、Fightというモジュールを持つゲームがあります。ページには、先頭に読み込まれるいくつかのモジュールもあります(統計情報とチャットのヘッダーのように)。しかし、すべてのナビゲーションと変更はAJAXを使用して中心部で行われます。のは、ユーザーが次のない、言ってみましょう:
は 地図に行く をお店に行く を戦うために行く をお店に行く地図、ショップのよう ...
地図に行き、自分の別のJavascriptを持って戦います各リクエストでロードされるファイル(主にブラウザのキャッシュから推測されます)、メモリ使用量はどうなりますか?ユーザーがマップからナビゲートするときにマップ変数とイベントハンドラをクリーンアップする必要はありますか?ユーザーがMapに2回目に移動したときに、古いMapスクリプトと競合することはありますか?アンロード時にクリーンアップを行わなければ、ブラウザーはますます多くのRAMを使用し始めるので、最終的にユーザーはページをリロードする必要がありますか?
このような状況に対応する信頼できる手法はありますか?
イベントはどのように作成されますか? – r3wt
@ r3wtあなたはイベントを手動で管理する必要があります.JSは、どのイベントを削除する必要があるかを知る方法がありません。それを行う最も簡単な方法の1つは、gameObject.createdEvents = []のような配列を作成し、そこに新しく作成されたイベントをプッシュし、次にすべてのイベントを通過してそれらを登録解除する関数gameObject.cleanup()を定義することです。 – bezmax