我在一个HTML页面上有几千个按钮。运行 $(".buttonset").buttonset();
需要超过10秒钟的时间。有没有更快的方法来实现,或者我的唯一解决方案是限制按钮数量?
我在一个HTML页面上有几千个按钮。运行 $(".buttonset").buttonset();
需要超过10秒钟的时间。有没有更快的方法来实现,或者我的唯一解决方案是限制按钮数量?
buttonset
。我刚刚测试了2400个盒子分成12个部分。在我的i7上使用Chrome 23、Firefox 17、IE9和Opera 12运行得很顺畅。这可能会在您第一次打开复选框组时增加分裂加载的时间,但它可以通过不创建未使用的样式按钮来节省一些RAM,直到它们被需要为止。 Fiddle
<span>
包装器和其他内容,以便在实际成为小部件之前可以通过jquery-ui的样式表进行样式设置。 - numbers1311407:P
但从优化角度来看,制作自定义插件可能是最佳选择。 - Fabrício Matté对于 buttonset()
设置成千上万个按钮所需的速度,您并没有太多可以做的事情,但如果您遇到了浏览器消息提示页面已经变得无响应的问题,您可以使用 setTimeout 调用将操作分解为异步操作。
$(".buttonset").buttonset();
Would become:
$(".buttonset").each(function(index, button) {
setTimeout(function() {
$(button).buttonset();
}, 0);
});
我已经成功地将这种模式应用于数千个jQuery UI对象,虽然它不能加速操作,但可以防止页面锁死,从而使页面看起来更快。
buttonset()
jQuery UI方法,我相信。楼主,我认为这是开始考虑制作自定义解决方案的情况。要么就像其他人建议的那样减少按钮数量。 - Zach Shipley