Java-набор результатов JQuery (мобильный) AJAX JSON производительности - PullRequest
0 голосов
/ 01 марта 2012

Я пытаюсь оптимизировать опцию поиска товаров для мобильного сайта на базе 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

    });

Спасибо за ваше время и помощь.

...