Я нашел два разных способа найти данные, введенные в форму, и не знаю, какой из них использовать. Я буду работать с довольно большой формой, поэтому производительность важна. Первый вариант использует .serializeArray()
и второй один использует .find().val()
JQuery: serializeArray() performance
Вариант 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 каждый раз, когда я ищу определенное значение, что заставляет меня думать, что он медленнее. Однако я не эксперт, поэтому я не уверен в себе. Это может не иметь большого значения, если я ищу только два значения, но я буду искать гораздо больше. Любое понимание очень ценится.