PhoneGap은 어떤 데이터베이스를 사용하며 크기 제한은 무엇입니까?
나는 localStorage, indexedDB 및 WebSQL을 추상화하는 HTML5 데이터베이스를 작성했습니다. 직선 HTML5를 사용하면 내 데이터베이스 옵션은 다음과 같습니다.
- IE10 -indexedDB-최대 1GB
- FireFox -indexedDB-무제한
- Safari -WebSQL-최대 50MB
- Chrome -IndexedDB (또는 Web SQL)-무제한 (HTML5 Quota API ref1 , ref2 사용 )
- Opera -WebSQL (웹킷으로 전환 할 때까지?)-무제한
PhoneGap 또는 Quota API를 사용하여 최대 데이터베이스 크기를 확장하고 싶습니다. PhoneGap의 문서에서 현재 PhoneGap 데이터베이스 ecosphere 는 다음과 같습니다.
- WebSQL -Android, Blackberry, iPhone 및 webOS
- localStorage -Windows Phone 7
- indexedDB - Windows Phone 8 및 indexedDB를 사용할 수있는 모든 곳에서 WebSQL은 사용할 수 없습니다.
PhoneGap SqlLite 플러그인도 있습니다. iOS , Android , Windows Phone 8 이상
질문 1 -PhoneGap이 사용하는 데이터베이스에 대한 나의 이해가 정확합니까?
질문 2- 주어진 유형의 PhoneGap 데이터베이스가 저장할 데이터의 양에 대한 확실한 문서가 있습니까? * PhoneGap 데이터베이스이고 브라우저 데이터베이스 구현이 아닌 경우.
질문 3 -PhoneGap은 웹 스토리지 표준 을 준수하여 indexedDB를 선호하는 WebSQL을 삭제할 계획이 있습니까? 그렇다면 indexedDB로 전환 한 후에도 기존 WebSQL 코드 (내장 된 PhoneGap-polyfill을 통해)를 계속 사용할 수 있습니까?
질문 4- 데이터베이스 크기가 제한되어 PhoneGap 또는 Quota API로 확장 할 수 없지만 파일 시스템에 대한 액세스가 가능한 상황에서 "추가"데이터가 장치의 파일 시스템에 저장 될 수 있다고 가정하는 것이 합리적입니까? SD 카드에?
PhoneGap이 어떤 데이터베이스를 사용하는지에 대한 나의 이해가 정확합니까?
네, 그렇습니다. PhoneGap은 LocalStorage, SessionStorage 또는 SQLite 데이터베이스를 사용할 수 있습니다. 또는 PhoneGap을 사용하여 플러그인을 통해 장치 네이티브 클래스에 연결하고 네이티브 클래스 데이터를 전달하여 장치에 저장할 수도 있습니다.
주어진 유형의 PhoneGap 데이터베이스가 얼마나 많은 데이터를 저장할지에 대한 확실한 문서가 있습니까? PhoneGap 데이터베이스이고 브라우저 데이터베이스 구현이 아닌 경우.
- LocalStorage :: 10MB
- SessionStorage :: 10MB
- SQLite 데이터베이스 :: 50MB-80MB (장치에 따라 다름)
- 플러그인 호출을 사용하는 네이티브 데이터베이스 :: 무제한 데이터 양
- IndexedDB :: 5MB. 여전히 존재합니다. 그러나 매우 버그가 많으며 여기에서 실행하는 장치 / OS 목록이 있습니다.
PhoneGap은 Web Storage 표준을 준수하여 indexedDB를 선호하는 WebSQL을 삭제할 계획이 있습니까? 그렇다면 indexedDB로 전환 한 후에도 기존 WebSQL 코드 (내장 된 PhoneGap-polyfill을 통해)를 계속 사용할 수 있습니까?
WebSQL은 서서히 더 이상 사용되지 않습니다. 대체는 IndexedDB 또는 SQLite입니다. 그러나 가장 좋은 옵션은 SQLite 또는 기본 데이터베이스 (예 : iOS의 핵심 데이터)입니다.
데이터베이스 크기가 제한되어 있고 PhoneGap 또는 Quota API로 확장 할 수 없지만 파일 시스템에 대한 액세스가 가능한 상황에서 "추가"데이터가 장치의 파일 시스템 또는 SD에 저장 될 수 있다고 가정하는 것이 합리적입니다. 카드?
확실히 가능합니다.
- Android에서는 데이터베이스 위치를 지정할 수 있으므로 데이터를 외부 데이터베이스로 푸시 할 수 있습니다.
- iOS에서는 기본 데이터베이스 호출을 사용하여 CoreData에 데이터를 저장할 수 있으며 외부 메모리는 없습니다.
- 모든 OS의 모든 경우에 텍스트 파일과 같은 플랫 데이터베이스 파일을 만들고 키-값 목록에 데이터를 저장 한 다음 처음 실행할 때이를 앱으로 가져올 수 있습니다. 이 경우 메모리 관리에주의하십시오.
내 대답 에 SQLite 및 LocalStorage 데이터베이스를 코딩하는 방법에 대한 설명을 추가했습니다 .
Android 4.0.4 태블릿에서 테스트를 실행할 수있었습니다. WebSQL (db.changeVersion을 지원하지 않는 이전 버전의 WebSQL)을 사용하며 전체 하드 드라이브 (데이터베이스로 12GB)를 채울 수 있습니다. 다른 장치 나 SD 카드의 작동 방식을 모릅니다.
IndexedDB-
- 많은 유형의 모바일 OS 및 버전과 호환되지 않습니다.
- It is only compatible with very specific versions of mobile OS
- Developers cannot use SQL with IndexedDB. SQL statements can be used on SQLite and WebSQL
- Most developers actively avoid using IndexedDB as much as they can
WebSQL -
- It has been deprecated by W3C which means it is no longer maintained or developed
- It requires another plugin called Polyfill to enable mobile applications to work with popular mobile OS such as Google Android and Apple iOS
SQLite -
- It received an award from Google
- SQLite has its official website. IndexedDB and WebSQL do not
- On Google, SQLite returns 1.8 million results. WebSQL returns a bit less than 700K results and IndexedDB returns 282K results.
- Developer can use common SQL statements with SQLite.
If you want a quick tutorial on SQLite
'Development Tip' 카테고리의 다른 글
JSONP는 사용하기에 안전합니까? (0) | 2020.11.11 |
---|---|
CSS로 배경 이미지 자르기 / 자르기 (0) | 2020.11.11 |
Pandas 시간대 인식 DateTimeIndex를 순진한 타임 스탬프로 변환하지만 특정 시간대 (0) | 2020.11.11 |
TCP 클라이언트 연결 끊김 감지 (0) | 2020.11.11 |
타임 라인 시각화를위한 SIMILE Timeline의 대안? (0) | 2020.11.11 |