Уточнить результаты поиска при вводе местоположения с помощью ajax? - PullRequest
0 голосов
/ 27 января 2012

У меня есть это текстовое поле на странице веб-формы asp.net, используемое для ввода города. При вводе некоторого текста он выдает подсказки так же, как и Facebook с соответствующими результатами.

Я попробовал эти два метода для реализации этого.

  1. Сначала я использовал событие onTextChanged и AJAX и обнаружил, что оно работает только тогда, когда текстовое поле теряет фокус. Я хотел, чтобы решение работало, когда вы печатаете. Преимущество использования этого состояло в том, что я мог использовать базу данных, и это было бы быстро, потому что никакие XML-файлы не будут переданы в процессе.

2.Я использовал ajax, клиентский - js. Но проблема в том, что города, содержащие xml, утверждают, что страна имеет размер 30 МБ. Таким образом, было невозможно использовать его, поэтому подумал о том, чтобы сделать 26 маленьких XML-файлов каждого алфавита из этого большого, но все равно они были бы достаточно большими, чтобы их можно было использовать на самом деле. Итак, теперь я планирую использовать 26 * 26 файлов, содержащих города с такими же первыми двумя алфавитами, но я думаю, что это неэффективный способ делать то, что я хочу.

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

1 Ответ

0 голосов
/ 27 января 2012
  1. Вместо этого вам нужно использовать onkeypress и / или onkeyup события. Знаете ли вы, что есть компоненты автозаполнения plug-and-play, которые бесплатны? Например http://jqueryui.com/demos/autocomplete/

  2. Используйте JSON! Это намного компактнее. Вы, вероятно, сэкономите 30-40% на размере этих данных. Знаете ли вы, что вам не нужно передавать весь набор данных, чтобы это работало? Вы можете использовать его на сервере (например, в базе данных или кэшировать на веб-сервере для более быстрого доступа и уменьшения трафика в дБ), и клиенты могут получать только небольшой набор данных за раз, основываясь на набираемых ими символах. Автозаполнение JQuery UI поддерживает эту функцию.


Если вы не можете использовать JQuery и JQuery UI (отказ от ответа был бы неприемлемым ответом), то я почти уверен, что есть и другие бесплатные альтернативы, включая эту: http://www.asp.net/ajaxLibrary/AjaxControlToolkitSampleSite/AutoComplete/AutoComplete.aspx

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