Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/78.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何提高绩效。。?_Javascript_Jquery - Fatal编程技术网

Javascript 如何提高绩效。。?

Javascript 如何提高绩效。。?,javascript,jquery,Javascript,Jquery,上面的代码导致停止运行此脚本?促使我有4000条记录。您的代码天生就很慢,并且可以优化缓存$this.index,例如,但最大的问题是,如果您有50*N条记录(例如4000条),则要求浏览器每1毫秒运行一次该函数 只需一次完成全部清洁 例如: function removeTds() { var elements = $('#goldBarList tr:not(:eq(0))').filter(':has(:checkbox:checked):lt(50)'); var cou

上面的代码导致停止运行此脚本?促使我有4000条记录。

您的代码天生就很慢,并且可以优化缓存$this.index,例如,但最大的问题是,如果您有50*N条记录(例如4000条),则要求浏览器每1毫秒运行一次该函数

只需一次完成全部清洁

例如:

function removeTds() {
    var elements = $('#goldBarList tr:not(:eq(0))').filter(':has(:checkbox:checked):lt(50)');
    var count = elements.length;
    elements.each(function() {
        grossWeightTotal = grossWeightTotal - $('#goldBarList tr:eq(' + $(this).index() + ') td:eq(8)').text();
        netWeightTotal = netWeightTotal - $('#goldBarList tr:eq(' + $(this).index() + ') td:eq(9)').text();
        fineOunceTotal = fineOunceTotal - $('#goldBarList tr:eq(' + $(this).index() + ') td:eq(10)').text();
    });
    elements.remove();
    if(count === 50) window.setTimeout(removeTds, 1);
}
removeTds();
如果要在更改复选框时重新制作“清洁”,请添加以下内容:

function removeTds() {
    var elements = $('#goldBarList tr:not(:eq(0))').filter(':has(:checkbox:checked)');
    elements.each(function() {
        var index = $(this).index();
        grossWeightTotal = grossWeightTotal - $('#goldBarList tr:eq(' + index + ') td:eq(8)').text();
        netWeightTotal = netWeightTotal - $('#goldBarList tr:eq(' + index + ') td:eq(9)').text();
        fineOunceTotal = fineOunceTotal - $('#goldBarList tr:eq(' + index + ') td:eq(10)').text();
    });
    elements.remove();
}
removeTds();
当然,您也可以绑定到按钮:

$('input[type="checkbox"]').change(removeTds);

例如,您的代码天生就很慢且可优化缓存$this.index,但最大的问题是,如果您有50*N条记录(例如4000条),则要求浏览器每1毫秒运行一次该函数

只需一次完成全部清洁

例如:

function removeTds() {
    var elements = $('#goldBarList tr:not(:eq(0))').filter(':has(:checkbox:checked):lt(50)');
    var count = elements.length;
    elements.each(function() {
        grossWeightTotal = grossWeightTotal - $('#goldBarList tr:eq(' + $(this).index() + ') td:eq(8)').text();
        netWeightTotal = netWeightTotal - $('#goldBarList tr:eq(' + $(this).index() + ') td:eq(9)').text();
        fineOunceTotal = fineOunceTotal - $('#goldBarList tr:eq(' + $(this).index() + ') td:eq(10)').text();
    });
    elements.remove();
    if(count === 50) window.setTimeout(removeTds, 1);
}
removeTds();
如果要在更改复选框时重新制作“清洁”,请添加以下内容:

function removeTds() {
    var elements = $('#goldBarList tr:not(:eq(0))').filter(':has(:checkbox:checked)');
    elements.each(function() {
        var index = $(this).index();
        grossWeightTotal = grossWeightTotal - $('#goldBarList tr:eq(' + index + ') td:eq(8)').text();
        netWeightTotal = netWeightTotal - $('#goldBarList tr:eq(' + index + ') td:eq(9)').text();
        fineOunceTotal = fineOunceTotal - $('#goldBarList tr:eq(' + index + ') td:eq(10)').text();
    });
    elements.remove();
}
removeTds();
当然,您也可以绑定到按钮:

$('input[type="checkbox"]').change(removeTds);

事实上,当用户点击删除按钮时,我必须删除所有选中复选框的行,我需要减去总数。。。最多我可以有4000行。事实上,当用户点击删除按钮时,我必须删除所有选中复选框的行,我需要减去总数。。。最多我可以有4000行。。