0
html5 websql db 테이블이 비어 있는지 확인하기 위해 함수를 작성하려고합니다. 코드는 다음과 같습니다. 나는 무슨 일이 일어나고 있는지 알기 위해 그곳에 경고를한다. 이 기능을 실행하면 하단의 경고가 먼저 나타납니다. 테이블이 비어 있더라도 반환 값은 false입니다. 쿼리가 비동기 일어나고HTML5 데이터베이스 테이블 - 비어 있는지 확인
html5 websql db 테이블이 비어 있는지 확인하기 위해 함수를 작성하려고합니다. 코드는 다음과 같습니다. 나는 무슨 일이 일어나고 있는지 알기 위해 그곳에 경고를한다. 이 기능을 실행하면 하단의 경고가 먼저 나타납니다. 테이블이 비어 있더라도 반환 값은 false입니다. 쿼리가 비동기 일어나고HTML5 데이터베이스 테이블 - 비어 있는지 확인
과 w3 page
function tableisempty() {
tf = false;
query = "SELECT * FROM OLL;";
localDB.transaction(function(transaction){
transaction.executeSql(query, [], function(tx, results){
if (results.rows.length == 0) {
tf = true;
alert ("table has "+results.rows.length+" rows. returning "+tf);
} else {
tf = false;
alert ("table is not empty. returning "+tf);
}
}, errorHandler);
});
alert ("return value is " + tf);
return tf;
}. 당신의 문제에 대한 해결책은 당신의 js 코드 구조에 달려있다.
옵션 1 :
함수 외부 이동 tf
(그리고 앞에 var
를 추가)하고 완전히 전에 반환 및 경고 권리를 제거합니다. 콜백이 호출되면 tf의 값이 변경되고 나머지 코드는 정상적으로 참조 될 수 있습니다.
옵션 2 :
이 this SO 질문에 따라, 당신은 단지 동기 작업을 가능하게 openDatabaseSync
에 openDatabase
에서 (다른 곳에서 내가 추정 코드에) 전화를 변경할 수 있습니다.
정말 HTML5입니까? – GolezTrol
@GolezTrol 예. http://diveintohtml5.org/storage.html 예 : –
오늘 뭔가를 배웠습니다. :) – GolezTrol