我在HTML页面上有几千个按钮。在准备好文档时运行$(".buttonset").buttonset();
需要10秒以上。有没有更快的方法来做到这一点,或者是我唯一能够以某种方式限制按钮数量的解决方案?
答案 0 :(得分:3)
在第一次显示之前按需创建buttonset
。
我刚测试了2400个分为12个部分的盒子。它在我的i7上使用Chrome 23,Firefox 17,IE9,Opera 12顺利运行。
这可能会在您第一次打开一个复选框组时添加一个拆分加载时刻,但它会通过在必要时创建未使用的样式按钮来节省一些RAM。
答案 1 :(得分:2)
关于buttonset()
设置成千上万个按钮所需的速度,您无法做很多事情,但如果10秒钟的问题是浏览器消息说该页面已无响应您可以使用setTimeout调用将操作分解为异步操作。
$(".buttonset").buttonset();
会变成:
$(".buttonset").each(function(index, button) {
setTimeout(function() {
$(button).buttonset();
}, 0);
});
我已成功使用此模式与数千个jQuery UI对象,虽然它不会加快操作速度,但它会阻止页面锁定,从而使其外观更快。