2012-03-07 2 views
3

HTML5 서버에서 SQLite 데이터베이스를 다운로드 한 다음 오프라인 상태에서 데이터를 참조하기 위해 해당 데이터베이스에 로컬로 액세스해야하는 응용 프로그램을 개발하려고합니다.SQLite 데이터베이스를 다운로드하여 오프라인에서 HTML5를 통해 로컬로 사용할 수 있습니까?

미리 채워진 SQLite 데이터베이스를 다운로드하고 HTML5를 사용하여 로컬로 액세스 할 수 있습니까? 나는 이것에 대한 예제 나 튜토리얼을 찾을 수 없었다.

내 생각은 사이트를 빌드하여 매니 페스트 캐시 파일 (지금까지 문제 없음)을 통해 오프라인 상태에서 모두 실행할 수 있지만 다운로드 한 미리 채워진 SQLite 데이터베이스에 액세스 할 수 있어야합니다. 서버, 그리고 그 부분은 내가 처리하는 방법을 잘 모르겠습니다.

온라인의 HTML5 애플리케이션은

답변

3

HTML5와 SQLite는이 같은 것이 아니다 ..., 업데이트를 위해 서버를 확인 매니페스트 캐시를 재건하고 다시 데이터베이스를 업데이트 할 수있는 능력을 가질 필요가있다. HTML5의 오프라인 저장소 및 웹 SQL 기능은 SQLite로 구현을 사용하지만 모든 구현이 SQLite를 사용하는 것은 아닙니다.

짧은 대답은 다음과 같습니다.

대신 업데이트 타임 스탬프를 저장하고 JSON (또는 이와 유사한 방법)을 통해 데이터를 왕래하는 등의 작업을 수행하여 데이터를 동기화해야합니다.

+1

+1 기술 매시업이 종종 가능할뿐만 아니라 적절하지 않은 경우가 종종 있습니다. 큰 단서는 예제 나 튜토리얼 (규칙이 아니라 큰 단서)을 찾을 수없는 경우입니다. –

1

SQL과 비슷한 인터페이스를 제공하는 a specification of a Web SQL Database이 있지만 불행히도 더 이상 활성화 된 유지 관리가 없습니다. 그러나 Chrome에 구현 된 OperaSafari (http://en.wikipedia.org/wiki/Web_SQL_Database)입니다. 여기에 a tutorial on web databases입니다.

가능한 대안은 데이터베이스 인 경우보다 작은 5  메가바이트 (http://dev.w3.org/html5/webstorage/#disk-space)이며, 당신은 사전/배열/해시 맵 같은 뭔가, local storage을 사용하는 것입니다 때문에 할 수 있습니다.

브라우저가 로컬 저장소를 지원하는 경우 아이디어는 데이터베이스를 로컬 저장소 (로컬 저장소는 문자열 만 저장할 수 있음)로 저장하고로드 할 데이터에 액세스해야 할 때마다 + 파싱합니다. 다음 도구가 필요합니다.

// Test if you browser supports local storage 
'localStorage' in window && window['localStorage'] !== null; 

// Store value in local storage 
localStorage.setItem(key, value); 

// Load value from local storage 
localStorage.getItem(key); 

// Parse JSON to JavaScript object 
JSON.parse('{"name":"John"}'); 

// Convert JavaScript object to JSON 
JSON.stringify({"name":"John"}) 

대부분의 최신 브라우저에는 기본 JSON이 지원됩니다. 구형 브라우저의 경우 우수 JSON-js library입니다.

+0

감사합니다. Kajic. 웹 SQL (SQLite 사용)이 죽었다는 것을 알지 못했습니다. 그건 내 계획에 중요했습니다. 이는 Manifest 캐시와 결합 된 Web SQL이 오프라인 기능이 필요한 매우 간단한 HTML5 기반 모바일 애플리케이션을 허용 할 가능성이 있기 때문에 불행한 일입니다. 이 HTML5 기반 솔루션은 android/ios 앱을 개발하는 것보다 훨씬 쉽습니다. IndexedDB가 유용하다는 것을 알 수 있지만, WebSQL이 가져다 줄 힘이 없다. :( – climbd