2012-05-22 4 views
1

중복 된 것처럼 보일 수 있지만 포럼 질문을 검색 한 결과 찾고있는 내용을 찾지 못했습니다.HTML5 기록 API 구현

저는 지금 당분간 책을 읽었으며, 다음 상황에 대해 어떻게해야 할지를 결정할 수 없습니다. 나는 부드러운 사용자 인터페이스를 필요로하는 한 페이지 웹 사이트를 구축하고 있습니다. 그래서 더 나은 친숙한 탐색을 위해 AJAX로 페이지를로드하기로 결정했습니다.

나는 사용하고있다 : SmartAjax; 잠시 동안 그것은 나를 위해 충분했다. 그것은 잘 작동하고 그것에 문제가 없었지만, 그것으로 콜백으로 많은 자바 스크립트를 다루는 데 문제가있었습니다. 또한 전체 웹 사이트를 통해 구현할 때 많은 작업이있었습니다.

HTML5가 1 년 전보다 안정되어 대부분의 브라우저에서 기능이 작동하지만 (일부는 여전히 polyfill이 필요함) HTML5 기록 API를 사용하기로 결정했습니다. 많은 웹 사이트에서 웹 사이트를 사용하고 있지만 그렇게하기는 쉽지만 거기에 대해 이해하지 못하는 부분이 있습니다.

따라서 여기 내가 그것에 대해 알고 싶습니다 내용은 다음과 같습니다

  • 지금 모든 브라우저에서 지원하고, 가장 중요한 장치는 만지지하고 휴대폰이이를 지원한다?
  • 거기에 특별한 라이브러리 또는 프레임 워크가 있습니까?
  • 작은 웹 사이트 (최대 6 페이지)에 사용하는 것이 안전하지만 많은 JavaScript가 있습니까?
  • jQuery 플러그인과 함께 사용할 때 동작합니까?
  • 해시 방과 해시는 어떨까요? History API를 사용하는 것과 동일하지 않습니까? 차이점은 무엇입니까?

나는 위에 언급 된 요령에 관해 모든 도움과 정보를 제공해 주시면 감사하겠습니다.

답변

3

브라우저 지원

Forget it. IE 9조차도 history.pushState을 지원하지 않습니다. 모바일 브라우저는 그리 안전하지 않습니다. 그러나이 비 호환성을 개발자에게 완전히 투명하게 만드는 라이브러리 (아래 참조)가 있습니다.

도서관

글쎄, 순수 HTML 5 환경에서, 역사의 API는 매우 간단합니다. 다른 사람의 경우, history.js 라이브러리가 꽤 관심을 얻었다, 플러스가 자동 대체를 제공 이전 해시 쓰는 당신이 더 나은 자바 스크립트와 당신의 잠재적 인 국가가 조직 한 작은 웹 사이트

음에

을, 그때. 그러나 그렇다면 아무런 문제가 없습니다.

역사 & jQuery를 & 플러그인 지금 프로젝트의 몇 함께 두 가지를 사용했다

. 아직 jQuery와 jQuery 플러그인을 사용하여 어떤 문제도 발견하지 못했습니다. 물론 Injected HTML과 관련된 일반적인 문제 (예 :이벤트 처리기가 리바운드되어야합니다. 어떤 환경에서는 $(document).ready()이 작동하거나 작동하지 않을 수 있습니다.

해시 history.pushState

대 해시 표기법 (요즘 대체 또는) 해결 방법으로 사용되어왔다. history.pushState를 사용할 때는 불필요 해집니다.

가장 큰 차이점은 주소 표시 줄의 URL이 항상 북마크 또는 링크 공유 목적으로 서버에서 직접 이해할 수 있다는 것입니다. http://example.org/#/my/fancy/site이 있다면 색인 페이지에서 해시를 분석해야하며 (자바 스크립트를 통해 해시 서버 측에 액세스 할 수 없으므로) my/fancy/site에 삽입/리디렉션해야합니다.

그러나 history.pushState를 사용하면 브라우저의 주소 표시 줄에 직접 라우팅 할 수있는 http://example.org/my/fancy/site이 표시됩니다. 일부 또는 역사를 가진 의심을 명확히

(그리고, 전화를 통해 사람에게 해시 또는 해시 뱅 URL을 맞춤법 상상!)

희망! History.js를 라이브러리 a로 선택하는 것이 좋습니다.

1

HTML5 History를 지원하는 브라우저 (현재의 모든 브라우저와 곧 출시 될 IE10)를 사용하고 이전 버전의 경우 정적 (비 Ajax) 링크 만 사용하는 것이 좋습니다. 브라우저가 업데이트되면 사이트가 자동으로 개선됩니다.

해시의 심각한 단점 (예 : URL의 해시 부분을 포함하지 않는 무의미한 참조 자)으로 인해 해시 폴리필을 사용하지 않는 것이 좋습니다. 통계는 오히려 쓸모가 없습니다.