Как стать автором
Обновить

Комментарии 36

Хорошо!
Еще порадовало, что Гаити, таки, наши! :))

У нас полоски уже :))
Спасибо, попробуем.
То что надо! Огромное спасибо
Отличная вещь, большое, большое спасибо!
показывает вхождение внутри слова, но ищет только с начала
так задумано было?
Тоже заметил
Судя по коду в локальных данных только с начала, а вот по запросу от сервера — зависит исключительно от серверного скрипта.
Спс, щас потестим =)
А как кеширование реализовывается?
Результат запроса заносится в this.cachedResponse. Перед новым запросом проверяется был ли такой запрос. Если был — берется полученный раньше список
А при рефреше страницы кеш останется или потрется?
Ну как я понял, если только в переменную js, не используя куки, то после рефреша кеш будет чистый.
Не совсем относится к теме, но все же — кеширование будет использоваться только для конкретного пользователя, что тоже не совсем гут. Если уж и говорить о кешировании, то оно должно быть для всех.
Но в целом — красиво, куда-нибудь обязательно прикручу, спасибо!
Как вы себе представляете кеширование в js(клиент-сайд scripting language) более чем для одного пользователя? Ну а так — конечно было бы неплохо:)
Ну такое кэширование можно сделать на стороне сервера. Но это уже целиком и полностью задача сервера, к плагину прямого отношения не имеющая.
какой смысл кэшировать запросы на сервере если потом всеравно придется брать запросы с сервера? через пару дней такого кеша на сервере кеша будет больше чем самих данных и работать Ваш кеш будет медленней чем обычная выборка
Ну во-первых это не мой кеш :)
Во-вторых, кэшировать тоже надо с умом — удалять старые запросы либо по факту накопления, либо по времени хранения, либо по другому какому-то алгоритму — это вопрос вообще отдельный.
В-третьих обычная выборка далеко не всегда бывает обычной. Мне довелось работать с проектом, где для получения результатов поиска приходилось джойнить пять-шесть таблиц по нескольку сот тысяч записей в каждой — тут практически любое кэширование даёт очень серьёзный выигрыш в производительности.
дык надо устраивать кеш на сервере не по условию клиентской выборки, а именно исходя из всех данных на сервере, просто человек изначально имел ввиду все запросы клиента хранить на сервере, правильней будет заранее подготовиться к запросам для подсказок
Смысл есть, если данные собираются из нескольких источников. В таком плане кэшем может являться таблица в бд, забиваемая подготовленными данными. Да и организовать кэширование можно по-разному, например, группировать запросы.
Выше предлагали этот кеш организовывать по клиентским запросам, это глупо, либо сразу сделать табличку с кешем, либо не выделываться
Ну дык это уже дело каждого, с плагином всё ок! :)
Да кстати, тоже стало интересно. Кешируется в js или куки? Говоря по другому, после обновления странички кеш будет чистый или нет?
Это проверенный временем и неплохо развитый плагин. Тоже его использую.
начал разбираться с плагином…
может я дурак, но каким должна быть autocomplete.php например…

вот такая ни в какую не дополняет
<?php
$test=array(query=>$_GET['q'],suggestions=>array('Antonio'));
echo json_encode($test);
?>

сорри за возможный оффтоп…
все. туплю. :)
если кто-то тупит так же, то скажу, что я просто невнимательно прочитал документацию на офф сайте. lookup и serviceUrl взаимоисключаемы.
Добавьте пожалуйста ссылку на аналогичный плагин для Mootools: www.ajaxdaddy.com/mootools-autocomplete.html раз Вы добавили ссылку на плагин для Prototype, может велосипедистов будет поменьше. Мне на прошлой неделе пришлось доделывать за индусами модификации плагина к SocialEngine — так вот эти умники для того, чтобы добавить автокомплит к двум инпутам подключили jquery + описанный Вами плагин. А что в SocialEngine уже подключен Mootools и соответственно получался конфликт с jQuery (сыпались ошибки в консоли файрбага, под ие не уверен что вообще работало), их нисколько не смущало.
Отлично! Как раз искал решение с разделителями.
Было бы еще классно реализовать функционал с уникальными вхожденями.
Т.е., есть я уже введен, например «Afghanistan», то после разделителя, при следующем выборе, в списке выдачи его уже нет.
Чем ваше решение лучше стандартного jquery плагина autocomplete?
Вы имеете ввиду plugins.jquery.com/project/ac?
Если да, то там как минимум нет поддержки разделителей, т.е. поиска «February, Ma...»
Нет, я имею в виду это: docs.jquery.com/Plugins/Autocomplete

И вот он как раз умеет разделители.
К сожалению, я не знал про это плагин. Хотя он всё равно не стандартный, а такой же самописный, как и этот.
Уделил несколько минут, из преимуществ моего нашёл регулярные выражения для разделителя и меньший размер js-файла.

А вообще, описанный мою плагин первоначально разрабатывался для Js Prototype, и потом был портирован на jQuery, когда компания сменила фрэймворк, поэтому претензий на оригинальность дополнения нет.
Плагин приятный, но:
1) почему подсвечиваются буквы(части слов) в середине слова, но по ним не ищется(было выше)
2) отказывается работать в 4-ой версии Google Chrome.
Народ как при локальном поиске дополнитьельно к lookup передать lfyyst данные чтобы обратно возвращало в параметре val?
Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации

Истории