У меня есть страница, где результаты поиска отображаются как в сетке, так и на карте (используя KML, сгенерированный на лету, наложенный на встроенную карту Google). Я подключил это, чтобы работать как пользовательские типы; вот скелет моего кода, который работает:
$(function() {
// Wire up search textbox
$('input.Search').bind("keyup", update);
});
update = function(e) {
// Get text from search box
// Pass to web method and bind to concessions grid
$.ajax({
...
success: function(msg) {
displayResults(msg, filterParams);
},
});
}
displayResults = function(msg, filterParams) {
// Databind results grid using jTemplates
// Show results on map: Pass parameters to KML generator and overlay on map
}
В зависимости от поиска могут быть сотни результатов; и поэтому работа, выполняемая в displayResults
, требует интенсивной работы процессора как на сервере (выполнение запросов к базе данных, создание и упрощение KML на лету), так и на клиенте (привязка данных к сетке результатов, наложение больших файлов KML на карту) ,
Мне нравится непосредственность получения более узких результатов при наборе текста, но я бы хотел минимизировать количество обновлений. Какой самый простой способ ввести N-секундную задержку после того, как пользователь перестает печатать, перед запуском функции update
?