javascript - 如何减少 JavaScript 代码的执行时间

标签 javascript jquery json for-loop

下面是我的代码,它在 for 循环中花费时间从一个对象中提取数据并填充另一个对象。有什么办法可以减少执行时间吗?我尝试过 while 循环,但它没有多大帮助。请帮忙

function SetGridWithData(result) {
    if (!result) {
        return;
    }
    CtrlBillableItem_SearhedBillableItems = result
    var boxOfJson = [];
    var j = 100;
    if (result.length >= 100) {
        if (PagingLastRecNum == 0) {

            btnPrevious.style.display = 'none';
            for (var i = 0; i < j; i++) {
                boxOfJson.push(result[i]);
            }
        } else {
            btnPrevious.style.display = 'inline';
            var intializer = (j * PagingLastRecNum) + PagingLastRecNum;
            var limiter = intializer + 99;
            for (var i = intializer; i < limiter; i++) {
                boxOfJson.push(result[i]);
            }
        }

    } else {
        btnPrevious.style.display = 'none';
        btnNext.style.display = 'none';

        for (var i = 0; i < result.length; i++) {
            boxOfJson.push(result[i]);
        }

    }
}

我正在尝试实现已完成的分页,但首先每页 100 个数据,它将检查第 0 页(如果是),然后循环第一个,如果不是 0,则不进行其他情况。

最佳答案

您可以尝试在函数开头缓存 result.length (在开头的 if 检查之后)..

   function SetGridWithData(result) {
            if (!result) { return; }
            var resultLength = result.length;
            CtrlBillableItem_SearhedBillableItems = result
            var boxOfJson = [];
            var j = 100;
            if (resultLength >= 100) {
                if (PagingLastRecNum == 0) {

                    btnPrevious.style.display = 'none';
                    for (var i = 0; i < j; i++) {
                        boxOfJson.push(result[i]);
                    }
                }
                else {
                    btnPrevious.style.display = 'inline';
                    var intializer = (j * PagingLastRecNum) + PagingLastRecNum;
                    var limiter = intializer + 99;
                    for (var i = intializer; i < limiter; i++) {
                        boxOfJson.push(result[i]);
                    }
                }

            }
            else {
                btnPrevious.style.display = 'none';
                btnNext.style.display = 'none';

                for (var i = 0; i < resultLength; i++) {
                    boxOfJson.push(result[i]);
                }

            }
}

关于javascript - 如何减少 JavaScript 代码的执行时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37745452/

相关文章:

javascript - 清除并添加新类别?

javascript - 带有 TypeScript 错误的 Angular HTTP GET http.get(...).map 不是 [null] 中的函数

javascript - 使用 Chai-HTTP 发布时似乎有错误的内容类型

javascript - 卡住 html 表上的前 3 列

javascript - 具有可编辑元素的表单在 angular-x-editable 示例代码中应具有 `editable-form` 属性

javascript - 如何在AngularJS中创建向上/向下投票功能

javascript - 如何使用 jquery 或 javascript 获取单选按钮 Id 值

javascript - 使用 $.when 从 ajax 方法填充全局变量后出现延迟异常

javascript - JSON 数组和对象长度在 Chrome 和 Internet Explorer 中的处理方式不同

javascript - 操作 MongoDB 响应 NodeJS