Я пытаюсь оптимизировать опцию поиска товаров для мобильного сайта на базе jquerymobile.
Поток:
Текстовое поле на KEYUP >> jquery $ ajax >> JSP >> Java (возвращает Resultset [максимум 30 строк] в jsp)
Текстовое поле HTML в keyup, вызывает функцию jquery $ .ajax (), которая вызывает страницу jsp.JSP зацикливает и форматирует набор результатов, и ajax () success: отображает вывод.
Я пытаюсь оптимизировать этот поиск.Фактический SQL-запрос (DB2) занимает около 3 секунд, однако пользовательский интерфейс занимает около 5 секунд и более.
У кого-нибудь есть предложения по улучшению производительности?Я думал о преобразовании набора результатов в json, но я не вижу, как это улучшит скорость, поскольку это будет похоже на циклическое повторение дважды: один для преобразования RS в json и другой цикл для форматирования полученных данных json в jsp.Вот функция ajax, если она помогает.
var xhr=null;
$('#txtbox').keyup(function (e) {
e.preventDefault();
$('#result').html('');
var $keywords= $(this);
if($.trim($keywords.val()).length != 0){
$('#loadmsg').text("Searching for '" + $keywords.val()+ "' please wait!");
if( xhr !=null){
xhr.abort();
xhr = null;
}
delay(function(){ //delay when user is typing fast
console.log("starting ajax for :"+$$keywords.val()+"at:"+new Date());
xhr = $.ajax({
type: "POST",
url: "invsearch.jsp",
data: "invQuery=" + $keywords.val(),
success: function (data) {
console.log("Success:"+$keywords.val());
$('#result').html(data);
$('#result').listview('refresh');
$('#loadmsg').text('');
},
error: function(jqXHR, exception) {
}
});
}, 1000 ); // delay
} // if
});
Спасибо за ваше время и помощь.