1

ajax呼び出しから取得した約5000のオプションを選択ボックスに入力しようとしています。同じデータを使用して、他の 8 つの選択ボックスを更新したいと考えています。私はprototype.jsを使用し、.update()関数を使用しています。しかし問題は、IE と Chrome がしばらくフリーズすることです。そのため、最初の選択ボックスを .update() 関数で作成し、選択ボックスを複製して、他の 8 つの選択ボックスをそれに置き換えようとしています。それがパフォーマンスを向上させるかどうか、およびそれをどのように達成できるかを提案してください。

4

1 に答える 1

0

非常に多くのオプションを選択ボックスにプッシュしているため、(JS フレームワークに関係なく) 要素を DOM に入力するためのすべての作業をメインの JavaScript スレッドが実行しています。将来的には、WebWorker スレッドをスピンオフして、メイン スレッドをブロックせずにこの作業を完了することができるようになりますが、すべてのブラウザー (ahem IE) がサポートするまでは、実装をお勧めしません。

2つの提案があります

  1. ドロップダウンをすべて同時に入力する代わりに、ajax を介して結果をクエリするこれらのAjax.Autocompleteフィールドを作成します。

  2. ドロップダウンを段階的に表示する - 最初のドロップダウンが選択された後、次のドロップダウンが表示されますclone()- 結果は同じですが、遅延は時間の経過とともに分割されます

于 2013-02-11T16:22:10.667 に答える