2010-08-09 6 views
1

WebKit (Safari 4+는 저의 포커스입니다)에는 Web SQL이라는 기능이 있습니다. 웹 SQL은 the W3C draft에 지정됩니다. 현재 비동기 형식 만 지원됩니다.Safari (WebKit) Web SQL 데이터베이스에서 executeSql 동기화

나는 데이터베이스에 쓰기 (CREATE TABLE 쿼리와 INSERT 쿼리를 통한 루프 사용) 및 데이터베이스에서 읽기와 같은 몇 가지 다른 작업을 동기화하려는 상황이 있습니다. 어떻게해야합니까? 내가 봤 거든 많이 튜토리얼을 읽을 수 있지만 그 어떤 설명을 찾지 못했습니다.

답변을 찾을 수없는 경우 Worker 기능을 사용해보아야하며 성공하지 못하면 webstorage (localstorage)에 데이터를 저장하려고합니다.

답변

0

누군가가 대답하는 것 같습니다. 현재 내 생각에는 localstorage에 블록을 저장하는 것이 가장 좋습니다.

+0

누군가 있습니다. 아마도 조금 늦은 파티에;) – oligofren

0

성공 콜백을 통해 작업을 연결합니다. 그렇게하면 작업 순서를 확인할 수 있습니다. this article에서 사용할 수있는 예제 코드를 참조하십시오.

트랜잭션 개체 또는 개별 쿼리 인 tx.executeSql(sql, [], callback, errorCallback)에 대해 사용할 수있는 콜백을 사용할 수 있습니다.

var sql_createTables = "CREATE .....", 
    sql_inserts= "INSERT ....."; 

function errorHandler(tx, error) { 
    //do error handling 
} 

db.transaction(
function(tx){ 
    tx.executeSql(sql_createTables,[], function(tx, result){ 
    //The table was created 
    tx.executeSql(sql_inserts,[], function(tx, result){ 
     // Inserts completed 
    }); 
    }, 
    errorHandler); 
}, function(error) { alert("Oh, noes! The whole transaction failed!"); }, 
function() { alert("Yeah, baby! We did it."); }); 

WebWorker이 함께 할 수 없다, 그리고 WebWorkerlocalStorageWebSql 부품있는의 DOM에 액세스 할 수 없습니다로, 어떤 식 으로든 도움이되지 않습니다.