gpt4 book ai didi

javascript - 这个 JavaScript 可以优化吗?

转载 作者:行者123 更新时间:2023-12-01 02:17:38 25 4
gpt4 key购买 nike

这个JS会在有很多字段的页面上执行。你能看出无论如何提高这段代码的速度吗?如果是这样,您能解释一下您发现了什么吗?

var _TextInputs = null;
function GetTextInputs()
{
if (_TextInputs == null)
{
_TextInputs = jq('input[type=text]');
}

return _TextInputs;
}

var _Spans = null;
function GetSpans()
{
if (_Spans == null)
{
_Spans = jq('span');
}

return _Spans;
}


function UpdateRate(ratefield, name)
{
GetTextInputs().filter('[' + name + ']').each(function()
{
this.value = FormatCurrencyAsString(FormatCurrencyAsFloat(ratefield.value));
CalculateCharge(name.replace('Rate', ''), jq(this).attr(name));
});
}

function CalculateCharge(name, activity_id)
{
var inputs = GetTextInputs();
var bill_field = inputs.filter('[' + name + 'Bill=' + activity_id + ']');
var rate_field = inputs.filter('[' + name + 'Rate=' + activity_id + ']');
var charge_field = GetSpans().filter('[' + name + 'Charge=' + activity_id + ']');

charge_field.text(FormatCurrencyAsString(FormatCurrencyAsFloat(bill_field.val()) * FormatCurrencyAsFloat(rate_field.val())));
}

最佳答案

你可以:

  • each 替换为 while
  • val() 替换为 .value(只要这些字段是纯文本字段就应该没问题)
  • 按类而不是按名称/类型访问元素
  • attr() 替换为普通属性访问;例如: this.attr(name) --> this.name

这些都是相当不显眼的更改,应该会加快速度,主要是因为减少了函数调用。

如果这些元素是静态的(即在应用生命周期中未修改),则不要在每次函数调用时查询元素。相反,将它们存储在循环之外。

关于javascript - 这个 JavaScript 可以优化吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1330535/

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