数値の大きな HTML テーブルを使用する私が書いたアプリケーションでは、設計上、ホバーされたセルの行と列が強調表示される必要があります。
私は jQuery 1.3.x を使用してこのプロジェクトのすべての JS を開発しましたが、必要なことを正確に実行するtableHoverプラグインを見つけました。
しかし:
IE6 では、セル要素の数がページがほとんど応答しなくなるまで増加すると、このプラグインのパフォーマンスが低下します。
問題はプラグインにあると思い、同じパフォーマンスの問題があることを発見するために、実際に機能全体を最初から書き直しました。
コードをデバッグした後、大量の要素を選択してclassName ( jQuery.addClass() ) を適用すると、IE6 では非常に遅いことがわかりました。
代わりにjQuery.css()をbackground-colorのみで使用しようとしましたが、パフォーマンスは向上しましたが、表のセルの数が増えるとパフォーマンスが使用不能な状態に低下し、他のすべてのブラウザーではjQuery.cssのパフォーマンスが低下します()はjQuery.addClass()よりもかなり遅いです。
ここでの主な問題は、テーブル列に共通の親がないことです。そのため、列をスタイルするには、テーブル全体を走査し、各行を選択してから、正しいnth-child tdを見つける必要があります。このための私のjQueryコードは次のようになります。
//col_num is the current td element
//table is the parent table
var col_num = cur_cell.prevAll().length + 1;
var this_col = $('tr td:nth-child(' + col_num + ')', table);
この問題とは関係がないため、コード全体をここに貼り付けることはしません。私が探している唯一の答えは、より良いパフォーマンスマージンで必要なことを行う既知の方法はありますか? 「Chrome」のパフォーマンス速度を探しているのではなく、「応答しない」よりも速いものを探しています。
タナクス
トム。