巨大なリストなどで使用すると速度が遅くなります。jqueryの選択可能なプラグインが非常に遅い
答えて
あなたは巨大なリストを持っている場合は、あなたがこのような高価なautoRefresh
optionを無効にすることをお勧めします:
$(".mySelector").selectable({ autoRefresh: false });
あなたは(stop
に言う)したいときはこのように、自分自身をリフレッシュすることができます。
$(".mySelector").selectable("refresh");
他のjquery UIメソッドとは異なり、セレクタはネストされた要素にも適用されます。唯一の直接の祖先を選択することが使用します。
jQuery('#content').selectable({
filter: '>*',
});
のjQuery UIの選択は、トップにあるものに要素の数を制限し、DOM構造のすべての要素を取ります。フィルタを追加します。
$("#items").selectable({filter: 'li'});
http://forum.jquery.com/topic/major-performance-problems-with-selectable
私は古いブラウザでは非常に遅いjquery.selectableであることがわかった(IE7のようなおよび8)、それは各項目の.offset()メソッドを呼び出す必要があるため。私はテーブル内のセルでそれを使用していたので、各行に対して1つずつ(各セルごとに1つの呼び出しではなく)1つの.offset()呼び出しを減らすことができました。リフレッシュ機能が変更されたプラグイン。これにより、大規模なテーブルではパフォーマンスが許容されました。 cellPositions配列は、各列の水平位置を保持します。
this.refresh = function() {
var cellPositions = [];
var firstRow = true;
selecteeRows = $("tr", self.element[0]);
selecteeRows.each(function() {
var row = $(this);
// adding any filters here seems to slow down IE a lot
// self.options.filter is not used!!
var selecteeCells = $(row).find("td");
if (firstRow && selecteeCells.length > 0) {
for (var i = 0; i < selecteeCells.length; i++) {
cellPositions[i] = $(selecteeCells[i]).offset().left;
}
cellPositions[selecteeCells.length] = cellPositions[selecteeCells.length - 1] + $(selecteeCells).outerWidth(true);
firstRow = false;
}
if (selecteeCells.length > 0) {
var top = $(selecteeCells).first().offset().top;
var bottom = top + $(selecteeCells).first().outerHeight();
var i = 0;
selecteeCells.each(function() {
var $this = $(this);
first = false;
$.data(this, "selectable-item", {
element: this,
$element: $this,
left: cellPositions[i],
top: top,
right: cellPositions[i + 1],
bottom: bottom,
startselected: false,
selected: $this.hasClass('ui-selected'),
selecting: $this.hasClass('ui-selecting'),
unselecting: $this.hasClass('ui-unselecting')
});
i++;
});
}
});
};
編集:ここでははgithubの内のコードへのリンクです:https://github.com/dfjackson/jquery.ui.selectableTable
私はこれが遅すぎる年のカップルですけど、私は50x100で選択可能な感てきぱきを取得しようとしてきました表。
テーブルコンテンツを挿入する前にテーブルのコンテナdiv(filter:'td'
)で選択可能なアイテムを作成すると、超高速で実行されることがわかりました。 Firefoxでは、それは約1msでインスタンス化していました(既存のコンテンツで作成する場合は約100回でした)。
- 1. SQLite - 選択式が非常に遅い
- 2. T-SQL挿入 - テーブル変数の選択が非常に遅い
- 3. jQueryのUIの選択可能なプラグイン - 私はここでは、表のセルを選択するために、jQueryのUIの選択可能なプラグインを使用しています複数のマウスドラッグ選択と非選択オプション
- 4. jQuery UIの選択可能なウィジェットをプログラムで '非選択'にする
- 5. JQuery UIの選択可能なプラグインで複数の項目を選択する
- 6. 非常に遅い実行可能なJarファイル
- 7. jQuery UIで複数選択を防止する方法選択可能なプラグイン
- 8. Notepad ++大規模なC++ヘッダーでSourceCookifierプラグインが非常に遅い
- 9. jQueryの選択可能なイベント
- 10. jQueryの選択可能なバグ?
- 11. jQueryのオートコンプリート機能としてソースプロパティ(){}非常に遅い
- 12. WCFが非常に遅い
- 13. WebClientが非常に遅い
- 14. ApacheBenchが非常に遅い
- 15. GetHostEntryが非常に遅い
- 16. jQuery非常に簡単なプラグイン
- 17. jQuery UI選択可能、リンクがクリックされていない
- 18. 選択可能なテーブル行Jquery Asp.net
- 19. jQuery MobileはiPadで非常に遅い
- 20. IEで非常に遅いjQuery
- 21. jQuery UI選択可能、選択時にアイテムにアクセスできない
- 22. 非常に遅い
- 23. Word 2010は、多くのコンテンツコントロール(選択肢)で非常に遅くなります。
- 24. Abcpdfコピー可能/選択可能なテキスト
- 25. Google AppsスクリプトのHTMLサービスのJQuery UIが非常に遅い
- 26. Jqueryのタブの読み込み速度が非常に遅い
- 27. jQueryのソート可能/ディスエーブル選択問題
- 28. VisualStudio2005のデバッグが非常に遅い
- 29. C#のコピーが非常に遅い
- 30. マージレプリケーションデータベースの挿入が非常に遅い