PhoneGap / JQuery Mobile dbShell вопросы - PullRequest
1 голос
/ 11 ноября 2011

Я пытаюсь выполнить запрос каждый раз, когда пользователь изменяет страницу в приложении телефонной связи. Я новичок в Phonegap / JQuery Mobile, но не понимаю, что происходит.

Когда я нажимаю кнопку, перед вызовом страницы вызывается дважды.

В первый раз все работает правильно. При следующем вызове не запускается dbshell.transaction, и ошибка не отображается. Итак, если я сначала нажму на страницу обзора, она будет работать, а на другой - нет. Если я сначала нажму на другую страницу, страница обзора не будет работать. В обоих случаях повторное посещение одной и той же страницы не приводит к повторному выполнению запроса.

Что здесь происходит? Должно быть, что-то не так с тем, как я называю dbshell?

//Listen for any attempts to call changePage().
$(document).bind( "pagebeforechange", function( e, data ) {
    alert("pagebeforechange");
    // We only want to handle changePage() calls where the caller is
    // asking us to load a page by URL.
    if ( typeof data.toPage === "string" ) {
        // We are being asked to load a page by URL, but we only
        // want to handle URLs that request the data for a specific
        // category.
        var u = $.mobile.path.parseUrl( data.toPage ),
            reOverviewPage = /^#overviewPage/,
            reViewByType = /^#viewByType/,
            pageUrl=data.toPage;
        var params = parseParams(pageUrl.substr(pageUrl.lastIndexOf("?") + 1));
        if ( u.hash.search(reOverviewPage) !== -1 ) {
            alert("overview");
            dbShell.transaction(function(tx) {
                alert("doing query");
                 tx.executeSql("select _id, description from area where _id=?",[params['id']],renderOverview,dbErrorHandler);
            },dbErrorHandler);              
        } else if (u.hash.search(reViewByType) !== -1 ) {

            alert("viewByType");
            dbShell.transaction(function(tx) {
                try 
                {
                    alert("!");
                    tx.executeSql("select trip.* from trip, trip_type, trip_type_lookup where trip_type.trip_id = trip._id and trip_type_lookup._id = trip_type.trip_type_lookup_id and lower(trip_type_lookup.type_name) = ?",[params['type']],dbErrorHandler, renderViewByType);
                } 
                catch(e) 
                {
                    alert(e.message);
                }

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