2

RWD を実現するために、jquery と一緒に Twitter ブートストラップを使用しています。チェックボックスは chrome/firefox で正常に応答していますが、IE8 ではチェックボックスの応答に数秒かかります。つまり、チェックボックスをクリックすると、チェックするのに数秒かかります。

4

2 に答える 2

2

これは、jquery-1.8.1 バージョンの使用が原因で発生しています。jquery-1.8.3 バージョンを使用すると、チェックボックスのレンダリングは問題なく高速に行われます。

于 2013-02-04T07:45:40.587 に答える
1

私もこれを見つけ、原因を特定しました。

まず、多数の DOM 要素を含む大きなページが必要です。私の例では、10 列と 100 行のテーブルがあり、各セルには 1 つまたは 2 つの要素も含まれています。

プロファイリングした場合の遅さは、それが jQuery 自体の中にあることを示しています。何が起きているかというと、ブートストラップで多数の .live() と .delegate() (エラー、".on" に相当するもの) 呼び出しがあり、jQuery はイベントを処理し、セレクター フィルターを実行して、ハンドラを呼び出す必要があります。チェックボックスを1回クリックすると、これが17回発生し、IE8では犬が遅くなります(IE9のIE8互換モードではなく、実際のIE8です。大きな違いがあります)。

回避策や修正方法は実際にはありません。これらのハンドラーを持つのはブートストラップの性質であり、IE8 の性質はゆっくりとフィルタリングすることです。

ページのサイズを最適化し、本当に必要なブートストラップの側面のみを含めることで、改善できる場合があります。

于 2013-02-15T19:28:21.653 に答える