2014-11-05 2 views
0

IndexedDB 기반 앱이 있습니다. 이전에는 IndexedDB에서 기능 감지를 수행하는 것이 쉬웠습니다. window.indexedDB이 정의되었는지 확인하십시오. 그러나 두 가지 최근에 변경되었습니다버그가있는 IndexedDB 구현의 기능 감지?

    Safari는 매우 깨진 색인화 된 지원과 함께 출시 된
  1. 나는 IE에서 지원하지 않는 기능 (복합 인덱스 및 multientry 인덱스)를 사용하는 내 응용 프로그램의 일부를 재 작성

이제 Safari 및 IE 사용자에게 합당한 오류 메시지를 표시하려면 좀 더 세밀한 기능 감지가 필요합니다.

IE의 누락 된 기능에 대한 테스트가 적어도 어렵다는 것을 알 수 있습니다. 적어도 문제가 문서화되어 있기 때문입니다. 하지만 사파리에는 여러 가지 버그가 있으며 어디서나 문서화가 잘되어 있는지 모릅니다. 지옥, 나는 사파리를 실행할 수있는 애플 기기조차 갖고 있지 않다. 그리고 미래에 다른 브라우저가 버그가있는 IndexedDB 구현을 릴리스하면 어떻게 될까요?

누구나 이러한 문제를 생각하거나 해결 했습니까? 저에게 표준 IndexedDB 기능 감지 라이브러리가 있어야하는 것 같지만 아무것도 찾을 수 없습니다 (Modernizr의 IndexedDB 항목이 충분하지 않은 것 같습니다).

답변

2

IE의 경우 : IDBKeyRange.only([1])을 확인하면 IE에 예외 DataError가 발생합니다.

사파리의 경우 확인하는 방법을 찾을 수 없기 때문에 일부 사용자 에이전트가 스니핑을했는데 (다른 값을 제거하는 경우 dummyDb를 작성하고 삽입을 검사 할 수 있음) 비동기적일 수 있습니다. 조금 더 어려움).

+0

IE 용으로 좋습니다. Safari를 어떻게 감지하는지 공유 할 수 있습니까? – dumbmatter

+0

나는 이런 식으로 생각하지만, 확실히 미래의 증거는 아닙니다 : var matches = navigator.userAgent.match (/ (iPad | iPhone);. * OS (\ d +) _ (\ d +) /); if (일치 && matches.length == 4) { var iOSVersion = parseFloat ([2] + "."+ matches [3])와 일치합니다. if (iOSVersion> = 8 { // 깨진 indexedDb } –