7

重複の可能性:
Javascript でツリーを読み込んでいるときに GIF を回転させる方法

タイトルが示すように、私の読み込み中の gif は、ajax 成功呼び出しを実行中にフリーズします。成功の呼び出しには重い DOM 操作が必要であり、UI はシングル スレッドであるため、読み込み中の gif がフリーズします。

これまでのところ、私はしようとしました

  1. 関数を最適化しますが、同時にロードする必要があるデータが多すぎます。
  2. setTimeout() を使用しますが、すべてが読み込まれた後にすべての gif が表示されます。
  3. spin.jsを使用しますが、DOM 操作中にフリーズします。

これを回避する方法はありますか?

どんな助けでも大歓迎です。


編集 1:データベースから約 4000 行を取得し、すべてのポイントを通過する for ループを介して正しい緯度と経度でポイントを表示する必要があるArcGIS
JavaScript に 関連しています。この ような簡単な概要を作成しようとしていますか? .

4

1 に答える 1

4

AJAX 応答の処理中に UI の応答性を維持するには、マルチスレッドをエミュレートする必要があります。

これの唯一の重要な部分は、タスクを分割してステップごとに実行できるように処理関数を配置することです。

呼び出すデータを取得したら、次のようにします。

function ProcessData() {
    var done = false;        

    /*
        access the data here and perform a "bit" of data processing.

        if the task finishes set done to true
    */

    if(!done) {
        setTimeout(ProcessData, 100); // this gives the UI 0,1 secs
    }
}

もちろん、上記の関数には、データにアクセスする何らかの方法が必要です (グローバルまたは適切にコンテキストを設定して)、操作の進行状況を登録するなどです。

アイデアを提供するだけですが、ウェブ上には詳細に説明しているものがたくさんあります。

または、「Secrect of the JavaScript Ninja」のコピーを入手して、「スレッドとタイマーの調整」の章を読むこともできます。

お役に立てれば。

于 2013-01-07T16:44:13.903 に答える