내가 몇 가지 코드가 예상대로 작동하지에 문제가있어, 난 아마 먼저 무엇을하고 있는지 설명해야한다 :함수가 동 기적으로 호출되지 않습니까?
문서로드 기능 selectForLists에가 SQLite는 DB를 포함하는 축구 점수를 조회하고, 특히 테이블 호출 된 함수는 renderLists 입니다.
RenderLists는 재생 팀을 중복 목록 이 제거 된 정렬 목록에 넣습니다.
이 팀 목록의 각 항목에 대해 latestTest 함수를 호출하면 팀이 경기하고 있으며 latestTest2를 호출하는 경기 테이블에서 모든 행을 선택하는 이 호출됩니다.
LatestTest2는 팀이 경기중인 행 수를 계산하고 은 삽입 된 div에 일부 코드를 출력합니다.
그는 그것이 나던 제외하고는로드 기능을 renderLists 기능을 완료하고 전화 에 복귀해야 모든 팀 완료하고 나는 그것이 마지막 일이 나던 때문에이 함수를 호출에 지연을 추가 할 필요가되면.
내가 위의 모든 것이 완료된 후에로드 된 함수가 호출되지 않는 이유는 무엇입니까? 또한 누군가가보다 효율적인 코드로 동일한 결과를 얻으려는 요령을 가지고 있다면 나는 그것을 매우 원합니다.
이 긴 게시물에 사과드립니다. 많은 사람들이 코드를 끔찍하게 찾을 것이라고 확신합니다. 너무 많은 기능과이를 수행하는 데 더 좋은 방법이 많이 있다는 것을 알고 있습니다.하지만 유니와 자바 스크립트로 작업 한 지 몇 년이 지났습니다. 그것과 sqlite와 고군분투. latestTest
기능은 자신의 콜백 다른 executeSQL
함수를 호출 아래 또는 http://pastebin.com/7AxXzHNB 감사
function selectForLists() { //called on (document).ready
db.transaction(function(tx) {
tx.executeSql('SELECT * FROM matches', [], renderLists);
});
}
function renderLists(tx, rs) {
var playingList = new Array();
for (var i = 0; i < rs.rows.length; i++) {
playingList.push(rs.rows.item(i)['playing']);
}
playingListSort = playingList.sort();
var playingListFinal = new Array();
playingListSort.forEach(function(value) {
if (playingListFinal.indexOf(value) == -1) {
playingListFinal.push(value);
}
});
for (var c = 0; c < playingListFinal.length; c++) {
latestTest(playingListFinal[c]);
}
loaded(); //not running last in the function
//setTimeout(loaded,1000);
/////Using a delay because it doesn't run after the above has completed
}
function latestTest(team) {
db.transaction(function(tx) {
tx.executeSql('SELECT * FROM matches WHERE playing="' + team + '"', [], latestTest2);
});
}
function latestTest2(tx, rs) {
counted = rs.rows.length;
var theFunction = rs.rows.item(0)['playing'];
$('#inserted').append('<li onclick="onToDate(\'' + theFunction + '\')"><img width="30px" height="25px" id="popupContactClose" src="style/soccer.png"><div id="popupContactClose2">' + counted + '</div></img>' + rs.rows.item(0)['playing'] + '</li>');
}
이 코드가 브라우저에서 실행 중입니까? 어떻게 데이터베이스에 직접 연결하고 있습니까? –
브라우저에서 다른 페이지가 localstorage에 데이터베이스를 만듭니다. – mao
@MattBall 더 이상 사용되지 않는 웹 SQL API입니다. – Raynos