![](/img/trans.png)
[英]Javascript /jQuery: How can I make this AJAX request run faster?
[英]How to make jQuery selector run faster or run it in chunks
我有一個簡單的jQuery代碼,該代碼在具有50,000多個人員列表的網頁上運行。 在IE上,我收到一條消息,指出腳本花費的時間太長。 我想擺脫IE中令人討厭的彈出窗口。
如果我需要添加50,000個DOM元素,則可以使用計時器將工作推遲進行。 當我從大量數據中選擇時,我不確定計時器在這種情況下是否會有所幫助。
我的jQuery代碼是
$('#all_member').click(function(){
$("#people_form input:checkbox").attr('checked', true);
return false;
});
我認為您真正需要做的是找到減少50,000個數字的方法。
$('#people_form input:checkbox:gt(chunk_start):lt(chunk_size)')
一個更完整的示例(您仍然需要使用setTimeout
以避免彈出窗口):
var CHUNK_SIZE = 4000;
var TOTAL = 50000;
for (var i = 0; i < TOTAL; i += CHUNK_SIZE) {
var chunk_suffix = ':gt(' + i + '):lt(' + CHUNK_SIZE + ')';
$('#people_form input:checkbox' + chunk_suffix).attr('checked', true');
}
如果您堅持使用50,000個元素,那么我認為這不是公共網站。
在這種情況下,您可以要求所有用戶都安裝Google Gears 。 使用Gears,您可以將JavaScript執行委托給瀏覽器“背后”的組件,這意味着(可能)您不會收到該IE消息。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.