레이서를위한 기록 시간을 기록한 PHP/mySQL/JS-JQuery 기반 웹 사이트를 만든 다음 서버로 다시 보냅니다. 서버가 데이터베이스에 완료 시간을 삽입합니다. 핸디캡 적용 공식을 기반으로 완료 위치를 계산합니다. 완성 된 장소를 웹 페이지에 저장하고 저장하며 화면에서 업데이트됩니다. Jquery Ajax 호출을 사용하므로 페이지가 전혀 다시로드되지 않습니다. 데이터 연결이 양호하면 모든 것이 잘 작동합니다.비정상적인 웹 연결의 웹 응용 프로그램
데이터 연결이 불량하면이 페이지의 첫 번째 버전에서 연결 상태가 좋지 않다는 메시지가 나타납니다. 이제 좀 더 똑똑해 지려고 노력했습니다. 브라우저가 켜져 있거나 오프라인 상태인지 여부를 알려주는 HTML5 기능으로 시작했습니다. 아직은 최선의 방법은 아니지만 개념 테스트를 위해 작동하는 것으로 알고 있습니다. 새로운 종료 시간이 기록 (또는 업데이트)되고 우리는 오프라인 상태가됩니다. JS는 마무리 시간의 태그에 notSent 클래스를 추가합니다. 완료 장소와 정상적으로 완료된 모든 마감 장소가 회색으로 표시되어 데이터가 더 이상 유효하지 않음을 나타냅니다 (서버와 통신 할 수있을 때까지).
브라우저가 다시 온라인 상태가되면 각 notSent 클래스의 간단한 jQuery 루프가 AJAX 요청을 다시 보내기 시작하고 모두 완료되면 반환 완료 위치 정보를 처리하여 최신으로 표시합니다.
또한 브라우저가 오프라인 일 때 페이지의 모든 외부 링크를 비활성화합니다. 이렇게하면 페이지를 찾을 수없는 버튼을 제공하는 링크를 클릭하여 실수로 데이터 입력 페이지를 잃지 않게됩니다.
마지막으로 브라우저를 다시로드하고 닫는 버튼입니다. 오프라인 일 때 사용자가 클릭하면 데이터 입력 화면이 사라지고 다시 연결될 때까지 운이 없게됩니다. 이 기능도 비활성화 할 수 있습니까? 이것에 대한 빠른 스택 오버 플로우 검색은 수행 할 수 있음을 나타내지 만 대부분의 대답은 오래된 문자를 사용합니다. "정말 안되며 생각이 필요하다면 디자인을 재고해야합니다." 경고.
내 디자인에 대해 다시 생각해보고 배우기 시작합니다.
- HTML 5 로컬 스토리지 브라우저에서 다시로드, 그래서 만약 페이지의 캐시를 제어하는 매니페스트
- 앱 캐시 (내 데이터가 입력 상자에 이미 저장되어 있기 때문에 내가 필요하지 않은 결정) 캐시 된 버전을 얻으려면 오프라인에서. 많은 독서가 끝나자 정적 페이지에서 작동 할 수는 있지만 데이터가 항상 업데이트되는 곳에서는 작동하지 않는다는 결론에 도달했습니다. 그런 다음 대부분의 브라우저에서이 기능을 사용하지 않는 것으로 나타났습니다.
- 서비스 종사자는 오프라인 캐싱을 제어 할 수있는 가능성이있는 것으로 보이지만 모든 브라우저에서 지원하지는 않습니다. 배우기는 꽤 번거롭고 새로운 기능입니다.
이제는 브라우저 재로드를 방지하고 학습자 서비스를 연기하는 것을 멈추지 않으면 서 내 것과 같은 동적 인 콘텐츠 페이지에 대한 더 많은 지원과 더 좋은 예가 될 때까지 기다렸습니다.
결론은 무엇입니까? 쉬운 해결책이 있습니까?