gpt4 book ai didi

javascript - 如何提高性能..?

转载 作者:行者123 更新时间:2023-11-30 07:26:17 24 4
gpt4 key购买 nike

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();

以上代码导致“停止运行此脚本?”迅速的。我有 4000 条记录。

最佳答案

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

只需一次清洁。

例如:

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);

当然你也可以绑定(bind)一个按钮:

$('#removeButton').change(removeTds);

关于javascript - 如何提高性能..?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13949527/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com