Медленная загрузка автозаполнения jQuery - PullRequest
2 голосов
/ 09 апреля 2010

Привет! Я создаю внутреннее приложение для своей компании, используя автозаполнение jQuery *1002*, и обнаруживает, что оно запускается очень медленно. Мое предположение состоит в том, что горлышко бутылки, возможно, добавляет свои элементы в DOM, поскольку после первого запроса он кажется значительно быстрее. Кто-нибудь знает способ предварительно загрузить эти элементы при загрузке страницы вместо того, чтобы делать это впервые, когда пользователь начинает печатать?

Ответы [ 2 ]

1 голос
/ 09 апреля 2010

Если вам не нужно использовать вызовы ajax для извлечения данных, и ваш список автозаполнения не слишком велик, вы можете передать данные для автозаполнения из массива объектов js.

Предположим, у вас есть такие данные (которые вы строите так рано, как хотите / можете):

var data = [{"n":name, "p":pagename,"c":number_of_results},...];

Тогда автозаполнение вызова будет выглядеть:

$("#autocomplete").autocomplete(data, {
    matchContains: true,
    formatItem: function(row, i, max) {
        return row.n + " ("+row.c+")";
    },
    formatMatch: function(row, i, max) {
        return row.n;
    },
    formatResult: function(row) {
        return row.n;
    }

});
$("#autocomplete").result(function(event, data, formatted) {
    if(!data) {
        alert("Please select an item");
    } else {
        window.location.href =  data.p;
    }
});

Это создаст автозаполнение, которое будет выглядеть как item name (number of results), и при щелчке на элементе оно будет перенаправлено на имя соответствующего элемента.

У меня около 1000 предметов, и скорость автозаполнения мгновенная.

0 голосов
/ 17 августа 2012

Сервер на стороне PHP / SQL работает медленно.

Не используйте PHP / SQL. Мой автозаполнение написано на C ++ и использует хеш-таблицы для поиска. Посмотреть спектакль здесь .

Это компьютер Celeron-300, FreeBSD, Apache / FastCGI.

И, видите ли, быстро бегает по огромным словарям. 10 000 000 записей не проблема.

Также поддерживает приоритеты, динамические переводы и другие функции.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...