2011-04-21 2 views
1

현재 HTTP 사양에서 URL 조각 (#을 비롯한 URL의 일부)은 어떤 식 으로든 서버로 보내지지 않습니다. 그러나 어떤 형태의 상태를 유지하기 위해 프래그먼트를 사용하는 AJAX의 보급이 늘어남에 따라 서버가 요청시 URL 단편에 대한 지식을 갖는 것이 유용 할 수있는 많은 상황이 있습니다. FB는 부트 스트랩 JS와 HTML을 모두 다시로드하지 않고 페이지를 업데이트 할 수 있도록 - 당신이 http://facebook.com에 가면URL 조각을 HTTP 요청에 포함시키는 제안이 있었습니까?

예를 들어, 스트림에 사용자 이름을 클릭 URL은 http://faceboook.com/#!/username이 될 것입니다. 그러나 브라우저에서 이것을 다시로드하는 경우 서버는 URL의 "# /! username"부분을 볼 방법이 없으므로 컨텐츠를 사전 렌더링 할 수 없습니다. 이렇게하면 클라이언트 Javascript가 프래그먼트를로드하고 파싱 한 후에 브라우저가 강제로 추가 요청을하게됩니다.

이 작업을 수행하기위한 표준 메커니즘을 만들기위한 노력이나 제안이 있었는지 궁금합니다.

예를 들어 URL 조각의 값과 함께 전송되는 표준 HTTP 헤더가있을 수 있습니다. 이러한 것들에 관심이있는 서버라면 누구나 액세스 할 수 있습니다.

웹 응용 프로그램 커뮤니티 전체에서 매우 유용 할 것으로 보이므로 어떤 제안도 들어 본 적이 없다는 사실에 놀랐습니다. 아마 나는 그것을 놓쳤다.

+1

쿼리 문자열이 작업을 수행하지 않는 예제가 있습니까? – hammar

+0

'아약스는'주 (state)를 위해 조각을 사용합니다 '라고 어떻게 주장합니까? 많은 상태 정보는 기본 URL 또는 쿼리 문자열을 사용하여 필요한 모든 상태를 유지 관리합니다. – bmargulies

+0

FB가 조각을 사용하여 현재 상태를 반영하는 방법의 두 번째 단락에 예제를 추가했습니다. 이 인스턴스에서 URL 매개 변수를 사용하면 모든 뷰 전환시 응용 프로그램이 다시로드됩니다. – levik

답변

0

Ajax 페이지를 크롤링 할 수 있도록하기 위해 this proposal by Google이 발견되었지만,보다 제한된 사용 사례를 다룹니다. 특히 URL 조각을 URL 매개 변수로 바꾸어 조각과 함께 해당 URL을 방문하는 클라이언트에서 생성되는 것과 동일한 HTML 출력을 서버에서 가져 오는 방법을 만듭니다. 그러나 Ajax 앱을 실행할 때마다 URL을 매번 다시로드해야하기 때문에 이러한 URL은 쓸모가 없습니다.

0

Imho, 조각 식별자는 실제로 상태를 저장하기에 좋은 장소가 아니며 다른 용도로 설계되었습니다.

즉, http://www.jenitennison.com/blog/node/154은 전체 주제에 대해 좋은 토론을하고 있습니다.

관련 문제