JQuery:serializeArray() 性能
JQuery: serializeArray() performance
我找到了两种不同的方法来查找输入到表单中的数据,但不确定使用哪一种。我将使用一个相当大的表格,所以性能很重要。第一个选项使用 .serializeArray()
,第二个选项使用 .find().val()
选项 1:
var values = {};
$.each($growDetailsForm.serializeArray(), function (i, field) {
values[field.name] = field.value;
});
var getValue = function (valueName) {
return values[valueName];
};
var first = getValue("first-name");
var first = getValue("last-name");
...
选项 2:
var $form = $('form');
var $first = $form.find('.first-name').val();
var $last = $form.find('.last-name').val();
...
有谁知道哪个选项更快?我假设选项 1 更快,因为我相信它会一次获取所有值并将它们放入一个数组中,从而为您提供一个较小的对象进行搜索。选项 2 每次查找某个值时都会搜索整个 DOM,这让我觉得它更慢。但是我不是专家,所以我不是很自信。如果我只搜索两个值,可能不会有太大区别,但我会搜索更多的值。任何见解表示赞赏。
除非你的表格很大(读起来太大了!)它不会有任何明显的区别,但如果你想亲眼看看,你可以找到 here。
我希望以后维护代码的可读性,所以第二种方法对我来说似乎更好,尽管你可以进一步简化它 $('.first-name').val()
我找到了两种不同的方法来查找输入到表单中的数据,但不确定使用哪一种。我将使用一个相当大的表格,所以性能很重要。第一个选项使用 .serializeArray()
,第二个选项使用 .find().val()
选项 1:
var values = {};
$.each($growDetailsForm.serializeArray(), function (i, field) {
values[field.name] = field.value;
});
var getValue = function (valueName) {
return values[valueName];
};
var first = getValue("first-name");
var first = getValue("last-name");
...
选项 2:
var $form = $('form');
var $first = $form.find('.first-name').val();
var $last = $form.find('.last-name').val();
...
有谁知道哪个选项更快?我假设选项 1 更快,因为我相信它会一次获取所有值并将它们放入一个数组中,从而为您提供一个较小的对象进行搜索。选项 2 每次查找某个值时都会搜索整个 DOM,这让我觉得它更慢。但是我不是专家,所以我不是很自信。如果我只搜索两个值,可能不会有太大区别,但我会搜索更多的值。任何见解表示赞赏。
除非你的表格很大(读起来太大了!)它不会有任何明显的区别,但如果你想亲眼看看,你可以找到 here。
我希望以后维护代码的可读性,所以第二种方法对我来说似乎更好,尽管你可以进一步简化它 $('.first-name').val()