2013-02-25 1 views
0

WebSQL에 데이터를 삽입하고 최대 크기 제한을 초과하면 iPad에서 사용자에게 경고 메시지를 표시하여 사용자가 늘릴 것인지 묻습니다 크기. 그러나 승인하더라도 현재 트랜잭션이 롤백됩니다. 롤백을 막기 위해 할 수있는 일이 있는지 궁금 해서요, 그래서 계속하실 수 있습니까?WebSql : 트랜잭션이 크기 제한에 도달하면 롤백을 수행합니다.

Here은 테스트 코드입니다. 롤백을 실제로 수행하는 코드는

db.transaction(function (tx) { 
    ... // create the table // ... 
    for(var i = 0; i < 10000; i++) { 
     insertData(tx) ; 
    } 
}, 
function() { 
    console.log("Transaction error -> rollback") ; 
}, 
function() { 
    console.log("transaction is ready") ; 
}) ; 

어떤 제안 사항이 있습니까?

건배

답변

2

WebSQL이 my blog post에 자세히 설명되어 있습니다와 공간 부족 상황을 처리하는 방법. 기본적으로 브라우저를 거부하여 사용자에게 메시지를 표시 할 권한이 없으므로 상황을 처리해야합니다. 간단하게 할 일은 사용자에게 더 많은 공간이 필요하다는 것을 알리는 것입니다. 트랜잭션의 성공 콜백이 원래 코드를 호출하는 크기를 늘리려면 다시 프롬프트해야합니다.

실제로 말하고자하는 내용은 공간이 부족할 때까지 모든 코드를 유지하려는 경우 트랜잭션을 롤백하기 전에 이동 한 정도를 나타내는 외부 인덱스를 유지 한 다음 이전 한계로 트랜잭션을 다시 실행하십시오. 그렇게하면 벼락 공부가 가능한 모든 데이터가 거기에있게 될 것입니다. 나머지는 결코 쓰여지지 않을 것입니다.

관련 문제