Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 31.10.2017, 01:30
Аватар для DynkanMaclaud
Профессор
Отправить личное сообщение для DynkanMaclaud Посмотреть профиль Найти все сообщения от DynkanMaclaud
 
Регистрация: 08.08.2014
Сообщений: 261

Autocomplete
Доброго времени суток, хотелось бы уточнить реализацию autocomplete поля,

Хотелось бы получить консультацию для тех кто реализовывал такое на боевом сервере под нагрузкой...

В кратце реализация ведь такая, на input весит обработчик нажатия клавиш и при нажатии отправляется запрос на сервер с веденным текстом, там происходит выборка из БД подходящих значений и эти данные отправляются обратно на клиент... Вот только вопрос, а гарантированно ли запросы отправленные от клиента и ответы на них вернуться обратно в том же порядке?? я думаю что нет, поэтому необходимо на серв отправлять еще и дату? эту дату на клиенте сохранять в массив а когда сервер вернет ответ (с датой которую отправил клиент), то на клиенте проверять последний ли это запрос пришел или нет...
Правильно ли я рассуждаю господа ?
Ответить с цитированием
  #2 (permalink)  
Старый 31.10.2017, 05:45
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

Сообщение от DynkanMaclaud
Правильно ли я рассуждаю господа ?
Нет, есть очередь. А запросы сервера производят с задержкой, иначе его можно забить запросами.
Ответить с цитированием
  #3 (permalink)  
Старый 31.10.2017, 11:26
Аватар для Alexandroppolus
Профессор
Отправить личное сообщение для Alexandroppolus Посмотреть профиль Найти все сообщения от Alexandroppolus
 
Регистрация: 25.10.2016
Сообщений: 1,012

DynkanMaclaud,

при отправке запроса запоминается набранный текст. Когда приходит ответ, сравниваешь текст для него с текущим текстом в инпуте, если совпадает, то вываливаешь ответ в выпадушку. Заодно можно запоминать ответы по тексту в отдельной карте, и перед отправкой запроса сначала смотреть в эту карту (хотя, браузер умеет кэшировать GET-запросы, так что с картой я немного погорячился).
Ответить с цитированием
  #4 (permalink)  
Старый 31.10.2017, 11:32
Профессор
Отправить личное сообщение для Nexus Посмотреть профиль Найти все сообщения от Nexus
 
Регистрация: 04.12.2012
Сообщений: 3,791

А есть ли смысл заморачиваться с проверкой актуальности полученных от сервера данных?
Если от сервера пришел ответ, но эти данные уже неактуальны, то они совсем скоро будут перезаписаны актуальными.

Upd. если скорость ответа сервера может от запроса к запросу сильно разниться, то имеет смысл abort'ить незавершенные запросы.

Последний раз редактировалось Nexus, 31.10.2017 в 11:43.
Ответить с цитированием
  #5 (permalink)  
Старый 31.10.2017, 11:54
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

Сообщение от Alexandroppolus
хотя, браузер умеет кэшировать GET-запросы
Вот именно.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
autocomplete обрезается в dialog sniffysko jQuery 1 30.05.2016 18:11
JQuery UI Autocomplete клонируется. Как исправить? Prorab337 jQuery 1 09.01.2016 18:59
виджет autocomplete() aj-nik jQuery 9 31.10.2014 21:47
Autocomplete в динамически созданной форме Nobas Events/DOM/Window 7 24.03.2014 15:05
Autocomplete c url (js+pl) DavydovPK jQuery 0 11.02.2014 14:15