我有一个简单的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/

10-11 23:32
查看更多