我有一个简单的jQuery代码,它运行在一个拥有超过50,000个人名单的网页上。在IE上,我得到的消息是脚本耗时太长。我想摆脱IE中令人讨厌的弹出窗口。
如果我需要添加50,000个DOM元素,那么我可以使用计时器推迟块中的工作。当我从大块数据中选择时,我不确定计时器在这种情况下是否会有任何帮助。
我的jquery代码是
$('#all_member').click(function(){
$("#people_form input:checkbox").attr('checked', true);
return false;
});
答案 0 :(得分:8)
我认为你真正需要做的是找到一种方法来减少50,000个数字。
答案 1 :(得分:4)
$('#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');
}
答案 2 :(得分:1)
如果您坚持使用50,000个元素,那么我认为这不是一个公共网站。
在这种情况下,您可以要求所有用户安装Google Gears。使用Gears,您可以将javascript执行委托给浏览器“后面”的组件,这意味着(可能)您将不会获得该IE消息。