6

我在 HTML 页面上有几千个按钮。准备好文档需要超过 10 秒的时间$(".buttonset").buttonset();。有没有更快的方法来做到这一点,或者是我唯一以某种方式限制按钮数量的解决方案?

4

2 回答 2

3

buttonset在第一次显示之前按需创建s。

我刚刚测试了 2400 个盒子,分成 12 个部分。它使用 Chrome 23、Firefox 17、IE9、Opera 12 在我的 i7 上流畅运行。

这可能会在您第一次打开复选框组时添加拆分加载时刻,但它确实通过在必要时不创建未使用的样式按钮来节省一些 RAM。

小提琴

于 2012-08-21T19:01:58.330 回答
2

对于设置数千个按钮所需的速度,您无能为力buttonset(),但如果 10 秒的问题是浏览器消息说页面已无响应,您可以将操作分解为异步操作setTimeout 调用。

$(".buttonset").buttonset();

会成为:

$(".buttonset").each(function(index, button) {
   setTimeout(function() {
       $(button).buttonset();
   }, 0);
});

我已经成功地将这种模式与数千个 jQuery UI 对象一起使用,虽然它不会加快操作速度,但它会阻止页面锁定,从而看起来它运行得更快。

于 2012-08-21T18:35:46.310 回答