0

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

ответ

1

Если ваша форма не огромна (читайте слишком большой!), Это не будет иметь сколько-нибудь заметной разницы, но если вы хотите сами убедиться, вы можете узнать here.

я бы пользу читаемость кода для поддержания позже, поэтому второй метод кажется мне лучше, хотя можно упростить, что еще дальше $('.first-name').val()

 Смежные вопросы

  • Нет связанных вопросов^_^