#jquery #jquery-ui #autocomplete #jquery-ui-autocomplete #performance
#jquery #jquery-пользовательский интерфейс #автозаполнение #jquery-пользовательский интерфейс-автозаполнение #Производительность
Вопрос:
Я использую несколько (более 100) полей автозаполнения на одной странице, все с одним и тем же источником данных, и заметил, что инициализация полей автозаполнения происходит немного медленно. Из некоторого профилирования, которое я сделал, похоже, что узким местом является создание меню ( this.menu = $( "<ul></ul>" )
и так далее в исходном коде).
Кажется излишним создавать отдельные меню для каждого поля автозаполнения, и поэтому мне было интересно, знает ли кто-нибудь способ ускорить эту инициализацию.
Я думал о том, чтобы заставить пользовательский интерфейс jQuery просто использовать одно и то же меню (или, предпочтительно, один и тот же объект автозаполнения) во всех полях ввода, но я не знаю, как это можно было бы сделать без изменения исходного кода плагина.
Комментарии:
1. Можете ли вы предоставить какой-нибудь jQuery и HTML-код?
Ответ №1:
Вы можете попробовать инициализировать поле автозаполнения только тогда, когда пользователь нажимает на поле
Комментарии:
1. 1 метод отложенной загрузки , часто очень хороший вариант.
Ответ №2:
У меня была такая же проблема, и я исправил ее, инициализировав автозаполнение при фокусировке:
$(".complete").focus(function(){
$(this).autocomplete({
//your options
});
});
Поле с функцией автозаполнения требует, чтобы класс «complete» был отклонен от курса.