[SQL] 웹 SQL 데이터베이스 + 자바 스크립트 루프
SQL웹 SQL 데이터베이스 + 자바 스크립트 루프
나는이 밖으로 내려고 노력하고있어하지만 내 자신에 보일 수 없다 ... 나는 웹 SQL DB를 가지고 노는 그리고 난 루프가 제대로 동작하지 않습니다. 나는 사용한다:
for (var i=0; i<=numberofArticles-1; i++){
db.transaction(function (tx) {
tx.executeSql('INSERT INTO LOGS (articleID) VALUES (?)', [i]);
});
};
그리고 나는 내가 점진 값을 얻을하지 않습니다 ... 5의를 얻을. 캔 누구의 제안은 내가 잘못하고있어 무엇을 내가 대해 생각을해야 하는가?
해결법
-
==============================
1.그것은 시간 tx.executeSql 화재에 의해, 루프가 반복 완료하고 내가 여러 번 변경되었음을 함수가 비동기처럼 보이는합니다.
그것은 시간 tx.executeSql 화재에 의해, 루프가 반복 완료하고 내가 여러 번 변경되었음을 함수가 비동기처럼 보이는합니다.
당신은 폐쇄와 함께이 문제를 해결할 수 있습니다.
for (var i=0; i<=numberofArticles-1; i++){ function (value) { db.transaction(function (tx) { tx.executeSql('INSERT INTO LOGS (articleID) VALUES (?)', [value]); }); }(i); // <-- CALL the function };
-
==============================
2.주위에 그것을 다른 방법을 수행합니다
주위에 그것을 다른 방법을 수행합니다
<script> numberofArticles = 5; db = openDatabase("websql", "0.1", "web-sql testing", 10000); db.transaction(function(tx) { tx.executeSql('CREATE TABLE IF NOT EXISTS LOGS (id unique, articleID int)'); }); db.transaction(function (tx) { for (var i=0; i<=numberofArticles-1; i++){ tx.executeSql('INSERT INTO LOGS (articleID) VALUES (?)', [i]); }; }); </script>
이 경우 불필요한 대체 루프 외부와의 적절한 방법
for (var i=0; i<=numberofArticles-1; i++){ (function(i) { db.transaction(function (tx) { tx.executeSql('INSERT INTO LOGS (articleID) VALUES (?)', [i]); }); })(i); };
from https://stackoverflow.com/questions/4825455/web-sql-database-javascript-loop by cc-by-sa and MIT license
'SQL' 카테고리의 다른 글
[SQL] PostgreSQL의에서 병렬 unnest () 및 정렬 순서 (0) | 2020.05.28 |
---|---|
[SQL] 다른 테이블에서 ID와 이름을 선택하고 쿼리에 가입 MYSQL (0) | 2020.05.28 |
[SQL] 노드를 반복 SQL Server 용의 XML 경로 메이크업 (0) | 2020.05.28 |
[SQL] 어떻게 이름에 대괄호가 SQL 서버에 뭔가 이름을 바꾸려면? (0) | 2020.05.28 |
[SQL] 쿼리의 반환에 날짜 삽입 곳에 아무도 없다 (0) | 2020.05.28 |