2012-02-16 1 views
3

jQuery Mobile을 사용하여 HTML5 웹 사이트를 구축했습니다.웹 데이터베이스 - 매번 tx.executeSql 콜백이 실행되지 않습니다.

내 index.htm 페이지에 ahref가 있습니다. 해당 링크를 클릭하면 tx.executeSql을 수행하는 함수가 실행되고 콜백 메소드가 실행되어 새로운 페이지로 이동합니다.

잘 작동합니다.

더 많은 페이지로 이동 한 다음 index.htm 페이지로 돌아 오면 링크를 클릭하면 함수가 실행되지만 tx.executeSql의 콜백은 실행되지 않습니다.

모든 아이디어는 크게 감사하겠습니다. 나는 javascript에서 jquery로 함수를 호출하기 위해 모든 다른 메커니즘을 사용했지만 아무런 차이가 없다.

첫 번째 함수는 setFeaturedRecruiter()입니다. 아래 코드를 볼 수 있습니다. 두 번째로 여기서 "renderResults"콜백 함수가 실행되지 않습니다.

// when we click on the actual featured recruiter link we copy from this table to the featured recruiter table to overwrite its contents 
function setFeaturedRecruiter() { 
    alert('setFeaturedRecruiter()'); 
    retrieveActualFeaturedRecruiter(); 
    return true; 
} 

function retrieveActualFeaturedRecruiter() { 
    alert('retrieveActualFeaturedRecruiter()'); 
    db.transaction(function (tx) { 
    alert('select * from featuredRecruiterActual...'); 
    tx.executeSql('SELECT * FROM featuredRecruiterActual', [], renderResults, pnetOnError); 
    }); 
} 

pnetOnError = function (tx, e) { 
    alert('Something unexpected happened: ' + e.message); 
} 

function renderResults(tx, rs) { 
    alert('renderResults()'); 
    var idNo; 
    var name; 
    var logo; 
    var totalAds; 
    for (var i = 0; i < rs.rows.length; i++) { 
    r = rs.rows.item(i); 
    idNo = r.idNo * 1; 
    name = r.name; 
    logo = r.logo; 
    totalAds = r.totalAds; 
    } 

    writeToFeaturedRecruiter(idNo, name, logo, totalAds); 
} 

답변

2

페이지 사이를 탐색 할 때 아약스를 사용하지 않도록 설정하여이 문제를 해결했습니다. 이것은 ahref 태그에 추가하여 수행되었습니다. data-ajax = "false". 이로 인해 페이지가 올바르게로드되고 문제가 해결되었습니다.