0

我有一个带有很多复选框的网页,我通过 jQueryUI button() 调用将它们变成了按钮。这会减慢页面的呈现速度。有可能加快这个速度吗?

document.ready用选择器打电话

$("#containingdiv input[type='checkbox']).button()

我正在为支架杯构建一个控件。我正在展示所有年龄段的括号,这就是有这么多复选框的原因。红色框中标记的是复选框,其他的是普通按钮。最多有 30 个年龄段,所以我需要展示很多。

在此处输入图像描述

看起来我应该自己构建 ui 而不是使用 jqueryui 的按钮。当我分析 i chrome 时,它​​看起来像是在构建所有一直使用的节点。

4

1 回答 1

1

试试下面的技巧。与其一次性转换它们,不如转换前一百个(或有多少用户立即在屏幕上看到),然后用setTimeout(). 这几乎立即释放了 UI 线程,因此浏览器可以执行其他操作,例如渲染和处理事件。初始化实际上变得更长,但页面从未被冻结。

就像是:

var checkboxes_left = $("#containingdiv input[type='checkbox']");
convertRest();

// Convert the first 100 checkboxes, then schedule converting the rest
function convertRest() {
    checkboxes_left.slice(0, 100).button();
    checkboxes_left = checkboxes_left.slice(100);
    if (checkboxes_left.length > 0) {
        window.setTimeout(convertRest, 50);
    }
}
于 2013-10-10T15:18:27.300 回答