テーブルにクライアントのリストを表示するアプリケーションがあります。このテーブルには 485 行あります。にthead
は、テキストボックスが表示される列に入力された値をユーザーがフィルタリングできるようにするテキストボックスがあります。ユーザーがこれらのフィールドのいずれかに文字を入力するたびに、Firefox がスクリプトが応答しないというプロンプトを表示するほど時間がかかるようです。
誰かが提案する前に、ページングはここではオプションではありません。アイデアは、完全なクライアント リストを表示し、ユーザーが特定の列の特定の値をフィルター処理することです。
現在、次の方法を使用して各列をフィルタリングしています。
$inputs.keyup(function() {
$header = $(this).closest("th").attr("data-header-name");
$table = $(this).closest("table").find("tbody");
$rows = $table.find("tr");
$rows.not(":visible").show(0);
$input = $(this);
if(!($.trim($input.val())) == "") {
$rows.filter(function(i) {
return ($(this).find("td").filter(function() {
return ($(this).attr("headers") == $header)
}).html().toLowerCase().indexOf($input.val().toLowerCase()) == -1);
}).hide(0);
}
});
これを改善してはるかに高速にする方法について誰かアイデアがありますか? 前もって感謝します。
よろしく、リチャード