JQuery:serializeArray()性能

时间:2016-01-12 22:26:49

标签: jquery forms performance query-performance serializearray

我找到了两种不同的方法来查找输入到表单中的数据,但我不确定使用哪种方法。我将以一个相当大的形式工作,因此性能很重要。第一个选项使用.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,这让我觉得它更慢。然而,我不是专家,所以我不是很自信。如果我只搜索两个值,它可能没什么区别,但我会搜索更多。任何见解都表示赞赏。

1 个答案:

答案 0 :(得分:1)

除非你的表格很大(阅读方式太大了!)它不会产生任何明显的差异,但是如果你想亲眼看看你可以找到here

我赞成稍后对代码的可读性进行维护,所以第二种方法对我来说似乎更好,尽管你可以进一步简化为$('.first-name').val()