2010-07-26 17 views
4

페이스 북에서 URL에 # 대신 #!을 사용하여 Ajax History (뒤로 및 앞으로 버튼) 및 북마크를하고 있습니다. 일반적인 앵커가 Ajax History 메커니즘을 방해하여 정상 앵커를 처리 할 수 ​​있다고 생각했기 때문에 항상 그렇게하는 것이 좋습니다.Ajax 히스토리와 북마크를 사용할 때 "#!" 그냥 "#"대신에?

따라서 Ajax 내역 함수는 # 대신 #!을 볼 때만 해시 부분을 처리합니다.

그리고 주요 브라우저와 호환되는 !을 사용하고 있습니까? 페이스 북이 !을 사용한다면, 꽤 잘 지원 될 것입니다.

답변

5

가능한 사용 사례를 보려면 Google의 Making AJAX Applications Crawlable 을 참조하십시오 (이것이 Facebook에서이 조각을 사용하는 이유인지 여부는 알 수 없음).

5

업데이트 :이 답변은이 article에 의해 superseeded되었습니다. Hashbang (#!), Hash (#) 및 HTML5 History API (pushState, popState) 및 솔루션과 관련된 문제에 대해 설명합니다.

귀하의 웹 사이트에서 사용성과 관련하여 중요하지 않으며 원하는대로 사용할 수 있습니다.

검색 엔진 최적화에 관해서는 검색 엔진 최적화가 필요하지 않고 검색 엔진 최적화가 필요하지 않은 경우 둘 다 다른 경로를 제공합니다.

예를 들어 Facebook은! Google Proposal for Making Ajax Applications Crawlable에 따르면 ! 추가! 그 아약스 요청에 귀를 기울여 검색 엔진 결과에 해당 URL을 추가해야한다고 Google에 알립니다. 이것은 이미 ajax를 구현 한 웹 사이트에 유용합니다.!를 추가하기 만하면됩니다!

단점은 아약스를 크롤링 할 수있는 문제 만 해결한다는 점입니다.

  • Ajax 및 비 Ajax 사용자를 위해 URL을 깨끗하고 일관되게 유지하십시오. 예 : www.facebook.com/profile.php?pid=123#!profile.php?pid=123
  • Non-Ajax 사용자가 웹 사이트에 액세스 할 수 있도록 유지하십시오.
  • Ajax 및 Non-Ajax 사용자 모두 URL을 동일하게 유지하십시오.
  • 쿼리 문자열과 관련하여 상태를 이스케이프하고 변환 할 때 서버 측 변경이 심각하게 복잡합니다.
  • 이 문제를 해결하기 위해 고안된 새로운 HTML5 PopState 기능과 호환되지 않습니다. 현재 인해 위의 문제로 모든 것을 아약스를 사용하지 않는 웹 사이트에 대한

는 아약스 미친 가서 필사적 솔루션을 필요로 페이스 북과 같은 사이트에 대한 유일한 해결 방법이기 때문에 구글의 제안을 사용하지 훨씬 낫다 SEO에. 이러한 문제를 더 많이 해결할 수있는 대안이 있습니다. HTML5 PopState를 사용하면 모든 문제를 해결할 수 있습니다. 그러한 대안 중 하나는 jQuery Ajaxy입니다 (balupton.com에서 볼 수 있습니다). 웹 사이트를 단순히 ajax 응용 프로그램으로 업그레이드하고 Ajax 사용 가능 대화 형 대화 형 사용자 환경을 유지하면서 Ajax 사용 불가능 사용자를 위해 계속 완벽하게 작동합니다.