![]() |
Проблема при создании живого поиска
Хочу сделать живой поиск данные грузятся с базы данных на сервере.
пишу на flex. Вот часть кода: Код AS3:
В остальных случаях данные забиваются как бы в стек и выводятся медленно друг за другом т.е. вначале ответ на поиск по первой букве потом по первым двум и т.д. |
Вобщем тут как я понял проблема заключается вот в чем.
Столкнулся с такой же проблемой и тоже незнаю как решить. Есть какая то строка (быстрый поиск как в гугле), при вводе каждого символа в эту строку происходит отправка данных на сервер для моментального поиска. В итоге поиск может задержаться до 1 секунды (ответ сервера), в форму же уже может ввестись следующий символ и т.п. Как то что выше работает Что в итоге происходит: вводится строчка... ну к примеру "абвг". поиск срабатывает после второго символа. Ввели "АБ", идет поиск, потом сразу "В", "Г". После чего начинается примерно следующее: выдаются результаты поиска АБ, потом открывается АБВ и только потом АБВГ. Раньше было еще хуже, допустим на запрос АБВ приходит 30 записей, АБВГ - 10. Результирующий ответ состоял из первых 10 записей для АБВГ, и еще 20 записей от АБВГ. Теперь главный вопрос, каким образом сделать так, чтобы если я ввел АБ, потом АБВ у меня поток загрузки результатов по запросу АБ прекратился (не нагружал канал, не показывался, не налезал результатами). |
Я бы сделал так:
При отправке запроса (АБ) блокируете отправку новых (просто сохраняете новый запрос куда-то, причем более новый запрос (АБВГ), будет затирать старый (АБВ) ). При получении ответа смотрите - если есть ожидающий запрос, то отправляете новый запрос. |
Вариант конечно интересной, спасибо, но мы получаем чуть другое. а можно ли как нибудь именно прервать текущий запрос?
|
А зачем так много запросов???
Допустим мы ввели первые 3 символа. Идет отправка запроса на сервер. Получаем ответ и с вводом следующих символов ищем нужное в результате запроса. |
кстати похожее видел в уроках на demiart, поищите там...
|
Цитата:
Цитата:
|
А можно как нибудь узнать есть соединение или нет?
|
|
| Часовой пояс GMT +4, время: 16:36. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.