문제

오프라인으로 HTML 양식을 실행할 수 있어야합니다. 웹 서버에 직접 연결하지 않고 작동해야합니다.

5 년 전에 작성한 응용 프로그램에서 사용자 지정 프로토콜 핸들러를 구현하여 수행했습니다. 사용자가 시작한 양식을 제출하면 결과 HTTP 요청이 로컬로 기록되었습니다. 나중에 서버에 대한 연결을 사용할 수있게되면 수집 된 요청을 통해 동기화 프로그램 루프를 사용하고 서버에 제출하면 응답을 수집하고 나중에 사용하도록 로컬로 저장합니다.

그때였습니다. 이제 다른 고객이 매우 비슷한 요청으로 저에게 다가갔습니다. 오늘날 내가 어떤 기술을 사용해야한다고 생각하십니까?

HTML5에 대한 지원은 아직 매우 제한적입니다. Google 기어? 아니면 프로토콜 핸들러와 사용자 정의 동기화기를 계속 사용해야합니까?

도움이 되었습니까?

해결책

나는 html5에 갈 것이라고 말하고있다. 모든 브라우저가 지원하는 것은 아닙니다. 그러나 모든 의지. 한편, 나는 "오프라인 기능을 얻는 것이 그러한 브라우저를 시도하는 것이 더 낫다"고 말하는 것이 낫다고 생각합니다.

또한 간단한 인구 통계 : HTML5는 모든 브라우저의 5%가 무엇입니까? 10%? 기어가 이미 설치된 사용자의 0%보다 훨씬 더 많습니다.

봉투를 기어로 밀어 주신 Google에게 감사드립니다. 그러나 와일드에서 일반적으로 허용되는 유일한 플러그인은 플래시입니다. 다행히도 HTML5는 거의 이미 거의 동일한 기능을 가지고 있습니다.

다른 팁

Google Gears는 매우 좋은 후보입니다. 예를 들어, Google은 최근에 사용자가 '오프라인'동안 이메일에 파일을 첨부 할 수 있다고 발표했습니다. 또 다른 방법은 게시 된 양식 데이터를 쿠키에 저장하는 것일 수 있으며 사용자가 온라인으로 돌아올 수 있으면 서버가 쿠키와 데이터를 선택합니다.

Google Gears가 더 이상 개발 중이 아니라는 소문이 진행되고 있습니다. 기어 기능을 보면 http://code.google.com/p/gears/issues/list?can=2&q=&sort=version&colspec=version%20Milestone%20owner%20ID%20Summary%20Component 새로운 기어 개발의 경우 버전 0.6으로 고정 될 3 가지 항목 만 있습니다. 또한이 Wikipedia 기사에 따르면 (http://en.wikipedia.org/wiki/google_gears), Google은 개발을 수행하지 않는 것으로 보이며 오픈 소스 프로젝트에는 스팀이 많지 않습니다. 기사에서 가져온 것은 다음과 같습니다.

"2009 년 11 월 말, 수많은 온라인 뉴스 소스에 따르면 Google은 향후 기어보다는 HTML 5를 사용하기 위해 마이그레이션 할 것이라고보고했습니다. Google 대변인은 나중에 Google이 기어를 계속 지원하여 사이트를 중단하지 않을 것이라고 밝혔다."

다시 말해, 기어는 더 이상 사용되지 않았습니다. 대신 HTML 5를 사용하십시오.

dojo.storage/ dojo 오프라인 Flash의 데이터 저장소를 사용하여 데이터를 저장할 수있는 Flash Bridge가 있습니다. 한도는 사용자 세트이지만 5MB에서 시작합니다. 라이브러리 구성 요소는 추상화이며 HTML 5, 쿠키 및 기어도 지원합니다.

플러스 기어를 사용하면 메모리가 제공되는 경우 이진 덩어리를 저장할 수 있습니다.

Google Gears는 죽었습니다. http://gearsblog.blogspot.com/2011/03/stopping-gears.html

가장 좋은 방법은 아마도 ApplicationCache 및 LocalStorage에 대한 HTML5 표준의 조합 일 것입니다.

그러나 ApplicationCache는 드물게 사용해야합니다. 진정한 고통입니다. 이 기사는 왜 페이지의 오프라인보기 (제출되지 않음)를 위해 ApplicationCache 및 LocalStorage의 하이브리드 접근 방식을 사용하는 방법에 대한 포인터를 제공하는 이유를 설명합니다.

http://www.alistapart.com/articles/application-cache-is-a-douchebag/

다음은 양식 데이터를 LocalStorage에 캡처하는 예가 있지만 불행히도 실제로 오프라인 데이터를 제출하는 예는 제공하지 않습니다.

http://miniapps.co.uk/blog/post/using-html5-localstorage-as-a-fallback-forffline-fline-form-submission

또한 Window.navigator.online Offline 상태를 감지하십시오. 오프라인 상태를 감지하십시오. 브라우저에서 일관되게 구현되지 않으며 사용자가 오프라인인지 아닌지를 명시 적으로 알려주는 것이 좋습니다.

- 차드

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top