Честно говоря, у меня, давно сложилось впечатление, что если клиент (в данном случае броузер) что-то должен с сервера забирать без перезагрузки страницы, то это обязательно должен быть AJAX XMLHttpRequest. Ткнул куда-то пользователь, сработало событие, сгенерировался AJAX XMLHttpRequest-запрос, пришел с сервера ответ, коллбэк обработал его и пользователь что-то увидел.
Но есть проблема.
Если пользователь быстро и часто давит на клавиши, создается некоторое количество параллельных запросов и в результате запрос, отправленный позже может отработать намного раньше более раннего запроса, что повлечет за собой вывод неправильных данных.
Да, можно заморочаться, придумать, как гасить ранние запросы или делать очереди. Или еще как-то.
Мне понравилось решение гугла на эту тему:
Т.е. при каждом нажатии на кнопку в поле поиска введенный текст подставляется в URL подключаемого JS-файла, на сервере в зависимости от введенных параметров файла генерируется JS-массив с данными и в конце вызывается функция отрисовки результатов.
Никаких AJAX XMLHttpRequest -запросов, все просто и шустро.
Будет работать только при наличии возможности генерации js на сервере.
Если JavaScript должен обрабатыть данные в XML, или нет сервера, который бы генерировал javascript, то это не будет работать.
А в целом идея прикольная!