2012-07-24 1 views
1

내 응용 프로그램은 webSQL을 사용하여 클라이언트 측 데이터베이스 저장소를 사용하여 사용자 정보를 저장합니다. 나는 브라우저가 webSQL에서 벗어나기 시작했다고 들었다. 현재 크롬, 사파리 및 오페라에서만 지원됩니다. IE와 Firefox는 webSQL을 지원하지 않기 때문에 사용자가 해당 브라우저를 사용하고 있다면 정보를 저장하기 위해 쿠키를 사용하고 있습니다. 그러나 쿠키는 매우 안전하지 않으며 많은 양의 데이터를 저장하기가 어렵습니다. 내 질문에 다음, 모든 브라우저가 지원하는 자바 스크립트 API와 비슷한 더 나은 옵션이 있습니까? 감사.웹 SQL 데이터베이스가있는 클라이언트 측 저장소

+0

진정한 크로스 브라우저를 찾고 있다면 당분간 (HTML5가 공식적으로 사용되기 전까지는) 운이 없어집니다. LocalStorage는 결국해야 할 일이지만 브라우저에서 RDBMS를 시뮬레이션하는 것은 약간 과잉 일 수 있습니다. _anything_ client-side를 저장하는 것은 본질적으로 불안정합니다. 이는 클라이언트의 통제하에 있기 때문입니다. – Widor

답변

2

나는 IndexedDB가 당신을위한 옵션이 될 것이라고 생각합니다. 현재 Chrome, Firefox 및 IE 10에서 지원되며 앞으로도 지원 될 예정입니다.

는 더 나은 이해를 그냥 브라우저에서 미래의 변화에 ​​위험을 줄이기 위해 래퍼 라이브러리를 사용하는 것이 좋습니다 것입니다 내 경험에서 http://html5-demos.appspot.com/static/html5storage/index.html#slide1

을 얻을 수있는 다음과 같은 프리젠 테이션에서보세요. 몇몇 인기있는 라이브러리가

  1. 저장 아래에 주어진다는
  2. RealStorage HTML5 API는 하위 집합입니다
  3. (IE6 포함) HTML4 브라우저 에 대한 폴백 (fallback)와 appendTo HTML5 API에 의해
  4. Amplify.js 레미 샤프을 polyfill 전체 API 중
  5. YUI3 CacheOffline YUI 팀
  6. Persistence.js 비동기 자바 스크립트 객체 데이터베이스 매퍼
  7. YDN-DB 쉽게 색인화, WebSql에 대한 데이터베이스 래퍼를 사용하고 로컬 스토리지는 폐쇄 라이브러리의 상단에 구축 할 수 있습니다.
0

저는이 질문이 제기 된 이래로 클라이언트 측 브라우저 공간의 발전을 감안할 때 2 센트를 추가 할 것으로 생각했습니다.

이 질문이 제기되었을 당시에는 IndexedDB가 유일한 대체 WebSQL 이었지만 그 당시에는 지원이 거의 없었습니다. 오늘날 전자는 여전히 사실이지만, 후자는 아닙니다 : 지금은 all of the major browser vendors have an implementation of IndexedDB입니다.

이 시점에서 IndexedDB가 W3C 표준 트랙에 남아있는 유일한 데이터베이스라고 생각하면 네이티브 클라이언트 측 데이터베이스가있는 한 거의 유일한 옵션입니다.

하지만 IndexedDB에 들어가기 전에 알아야 할 몇 가지 사항이 있습니다. 첫 번째는 비 관계형 문서 저장소이므로 SQL을 기본적으로 지원하지 않기 때문입니다. 두 번째는 API가 ... 말하기가 쉽지 않다는 것입니다.

이러한 상황이 발생하면 BakedGoods을 확인하시기 바랍니다. 당신이 매저 키스트의 일종 있다면, 당신은 내 제안을 무시하고 처리 할 수 ​​물론

bakedGoods.set({ 
    data: [{key: "key1", value: "value1"}, {key: "key2", value: "value2"}], 
    storageTypes: ["indexedDB"], 
    function(byStorageTypeStoredItemRangeDataObj, byStorageTypeErrorObj){} 
}); 

: 그와 더불어, 색인화 된 데이터베이스에서 하나 이상의 데이터 항목을 배치, 예를 들어, 것만 큼 간단합니다 원시 API. 하지만 내가 너에게 경고하지 않았다고 말하지 마라.

완전한 투명성을 위해 BakedGoods는 귀하가 진정으로 유지합니다. :).