我有一个简单的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');
}
关于jquery - 如何使jQuery选择器运行更快或成块运行,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/1385119/