2

私の英語について申し訳ありません。私はチェスのインタラクティブサイトを開発しています。レッスンメニューがあり、ユーザーがレッスンを選択すると、を使用してロードされ$.getScript()ます。レッスンファイルlessonには、「大きな」jsonオブジェクトを含む変数のみが含まれています。ユーザーが別のレッスンを選択すると、ファイルが読み込まれ、新しいlesson変数が前の変数を上書きします。

わかりました、それはうまくいきます。しかし、以前にロードされたファイルを破棄する必要がありますか?必要な場合は、どのように処理しますか?ユーザーが50のレッスンをナビゲートすると、プロセスが遅くなりますか?

<head>ファイルがロードされ、ファイルが置かれていると思われる場所でfirebugを調べたところ$.getScript()、「黄色のフラッシュ」が表示されましたが、何も表示されません。

これについてのあなたの考えを知りたいと思います。前もって感謝します。

4

2 に答える 2

1

$.getScript実際にはファイルをロードしません(つまり、スクリプトタグとしてヘッドに追加します)が、script .jsファイルをダウンロードして、すぐに実行します。もちろん、スクリプトに何らかの終了関数を含めて、使い終わったときにそれ自体を消去することもできます。

于 2011-05-07T02:10:45.773 に答える
0

ファイルを「破棄」したり、スクリプトタグなどを削除したりしても、スクリプトはすでに実行されているため、変数は存在します。

唯一の方法は、null別のレッスンを選択するときにjsonオブジェクトに設定することです。

たとえば、lesson1.jsファイルに次のjsonがある場合:

var lesson1data = { 
  ...Big json comes here...
};

メインページ/スクリプトには、次のものが含まれている必要があります。

function selectLesson(lessonNumber){
   lesson1data = null; //This 'cleans' the loaded data
   lesson2data = null; //This 'cleans' the loaded data
   ...
   $.getScript(...); //Load json data for selected lesson
}

お役に立てれば。乾杯

于 2011-05-07T02:10:49.077 に答える