2

私が抱えている問題は、ほとんどの顧客が IE8 を使用していることです。画面上に非常に多くの要素があるため、IE8 はどのセルがクリックまたは移動されたかを認識するのに苦労します。速度が許容できないので、クリック認識速度を改善する方法を探しています。jQuery Pagination プラグインをインストールしました。これにより、ユーザーは表示される行数を変更できるようになり、速度はいくらか向上しますが、十分ではありません。

質問させていただいたのは、.delegation() と .click() を使用してもクリック認識速度に違いがないという事実です。.delegate ははるかに高速であるはずですが、IE8 では。以下の JSFiddle は、約 10,000 セルの最大のテーブルを表したものです。「クリック」と矢印キーのナビゲーションが有効になっているため、IE8 と Firefox/Chrome/などの速度の大きな違いを見ることができます。また、IE8 の JSFiddle では、例をレンダリングするのが難しい場合があります。

http://jsfiddle.net/RaySuave/Q6vex/1/
(jQuery コードは、このサイトの別の投稿から取得しました。必要に応じていくつかの改造を行いました)

私がこの問題に対処しようとして失敗した最も巧妙な試みは、次のようなパターンでテーブル全体ではなく、一定数の行に委任を割り当てることです。

$(function(){
   $('table tr').slice(0, 5).delegate("td","click",function);
});

$(function(){
   $('table tr').slice(5,10).delegate("td","click",function);
});

$(function(){
   $('table tr').slice(10, 15).delegate("td","click",function);
});

参考までに - さまざまなブラウザーでの jQuery イベント処理メソッドの速度のテスト
http://jsperf.com/bind-vs-click/41

なぜこのような巨大なテーブルが必要なのですか?
過去に手動で Excel に入力された大きなスプレッド シートを、ユーザーがセル クリックと矢印キー ナビゲーションを介して HTML テーブル セルに入力できる動的な Web ベースのサイトに変換しています。セルの値はデータベースに保存されます。これらの表は、権限を与えられたすべての担当者が Web サイトを介して閲覧できるようにアクセスできます。

セルを編集可能にする jQuery、列ヘッダーの縦書きテキスト、Coldfusion と MS-SQL を介したデータベースへの値の書き込みなど、すべてのコーディングが完了しました。

コメントや提案をお寄せいただきありがとうございます。

4

1 に答える 1

1

遅いie8の問題を探している人に役立つ場合:dom要素にクラスを追加した後にie8を強制的に再描画する方法。可能であれば、DOMの要素とイベントの数を減らし、[some-attr]セレクターよりも.some-classセレクターを使用してください。

于 2012-12-10T21:46:27.893 に答える