iOS 및 Android에서 실행되는 HTML5 모바일 앱이 있습니다. 사용자는 일반적으로 약간의 테이블에 저장된 약간의 로컬 데이터를 갖습니다. 평균 세 개의 레코드가있는 다섯 개의 테이블을 예로 들어 보겠습니다.성능을 향상시키기 위해 websql 데이터베이스를 열어 둘 수 있습니까?
websql의 성능이 매우 나쁩니다. this post에서 지연의 대부분은 각 트랜잭션에 대한 데이터베이스를 열고 닫는 데 유용하다고 읽었습니다. 내 사용자는 일반적으로 한 번에 하나의 트랜잭션 만 수행하므로 각 작업에 대해 데이터베이스를 열고 닫는 데 필요한 시간은 일반적으로 필요한 총 시간 중 비교적 큰 부분 일 것입니다.
일단 데이터베이스를 열 수 있다면 모든 트랜잭션 래퍼를 제거하고 SQL을 바로 실행하면 될까요?
테이블은 사용자가 데이터를 업데이트하는 것보다 다른 사람이나 프로세스에서 사용되지 않으며, 앱이 업데이트 후 데이터를 읽고 계산 및 통계를 위해 서버로 데이터를 전송하는 앱입니다.
위의 전략을 따르고 데이터베이스가 닫히지 않지만 사용자 또는 운영 체제가 앱을 닫으면 (올바르게 말하면 webview) 변경된 데이터가 유지되거나 손실됩니까?
경험상 WebSQL 성능이 그렇게 나쁘지는 않습니다. 단일 트랜잭션 내에서 수천 개의 레코드를 삽입하는 데 1 초도 걸리지 않습니다. 3 개의 레코드가있는 5 개의 테이블은 실제로 케이크 조각이어야합니다 ... JS 클라이언트는 시작시 db를 열고 닫지 않으며 트랜잭션 커밋 후에 데이터를 잃어 버리지 않습니다. – DCoder