knockout.jsの使用-HTMLテーブルにバインドされているobservableArrayを並べ替える必要があります。列ヘッダーをクリックすると、配列ASCまたはDESCが並べ替えられます。これは非常に一般的なタスクです。
問題は、並べ替えによってUIが約5秒間フリーズすることです。これは、JSがシングルスレッドであることが原因であることがわかります。
私の質問は-時間のかかるノックアウトソーティングの回避策はありますか?ローダーインジケーターなどを表示する方法を意味しますか?
knockout.jsの使用-HTMLテーブルにバインドされているobservableArrayを並べ替える必要があります。列ヘッダーをクリックすると、配列ASCまたはDESCが並べ替えられます。これは非常に一般的なタスクです。
問題は、並べ替えによってUIが約5秒間フリーズすることです。これは、JSがシングルスレッドであることが原因であることがわかります。
私の質問は-時間のかかるノックアウトソーティングの回避策はありますか?ローダーインジケーターなどを表示する方法を意味しますか?
問題は「解決済み」です - 配列の並べ替えは実際には非常に高速です。問題は、ページ上の HTML 要素を再レンダリングすることです。
他のユーザーへのアドバイス: 基になる JS 配列の並べ替えは、監視可能な配列の並べ替えよりも少し速いようです (ただし、私は測定しませんでした)。
これはより高速です:
anObsArray().sort(--sorting func here--); // notice brackets after name of anObsArray
anObsArray().valueHasMutated(); // <-- this line is important
これより:
anObsArray.sort(--sorting func here--);