2011-01-11 12 views
2

의 내가 URL을 가지고 있다고 가정 해 봅시다 : http://example.com/person/list즐겨 찾기 아약스 페이지

이 웹 사이트는 사람들의 목록이 표시됩니다. 사람들의 목록은 매우 길어 결국 결국 페이지 매김을합니다. 페이지 당 10 명이라고 가정 해 보겠습니다.

이 좋은 http://example.com/person/list?page=3

내가 복사 때문에 경우 및 붙여 넣기 : 나는 다음 페이지의 링크를 클릭하면

http://example.com/person/list?page=2

, 내가 3 페이지로 이동합니다 : URL은 다음과 같이 보입니다 친구에게 URL을 보내면 즉시 3 페이지로 이동합니다.

이제 AJAX를 통합했으며 페이지 요청은 jQuery를 사용하여 ajax 호출이라고 가정 해 보겠습니다. 원래 URL은 http://example.com/person/list이고 사용자가 다음 페이지 링크를 클릭하면 주소 표시 줄의 URL이 변경되지 않습니다.

3 페이지에있는 경우 검색 주소창의 URL에 더 이상 반영되지 않으므로 잘못되었습니다.

URL을 변경하는 jQuery 히스토리 플러그인이 여러 개 있지만 해시 표시 # 뒤에 나오는 URL의 부분 만 변경합니다. 해시 표시 이후의 정보는 서버로 보내지지 않습니다.

나는 역사의 플러그인을 사용하고있는 경우는, URL이이 방법으로 http://example.com/person/list#page=2

내 문제로 변경할 수 있습니다 것은 : 만약 누군가 복사 및 붙여 넣기 친구에게이 URL, 친구는이 URL을 요청하면, I 사용자가 어떤 페이지를 보려고하는지 전혀 모른다. 따라서, 내 최선의 접근 방식은 페이지에 사람들이 항목을 모두로드하고 자바 스크립트는 해시 표시 후 정보를 기반으로 표시 할 페이지를 선택해야합니다. 처음부터 서버에서 끌어 오는 정보의 양을 줄이기 위해 페이지를 매기기 시작했기 때문에 이것은 문제가됩니다!

Ajax에서 사용할 수있는 백 버튼을 가질 수있는 옵션과 서버에서 모든 정보를 얻지 않아도되는 북마크 가능 링크가있는 옵션은 무엇이 있습니까?

답변

4

최근에 내 question에서 배운 바와 같이 '친구'가 링크를 열고 ajax를 사용하여 콘텐츠를 가져온 후에 URL의 해시 - 부분을 확인해야합니다.

또는 당신은 당신은 아약스 해당 페이지를로드 한 다음 페이지가로드 될 때까지 아무 것도 나열 할 수 없습니다 http://example.com/person/list?page=2

+0

정확하게 처리 방법에 대한 아이디어를 얻으려면 Gmail이나 Google 리더 (거대한 코드가 아닌 작동중인 앱)를 살펴보십시오. – Omiod

1

에 서버 측에 그것을 다시 작성할 수 있습니다.

다른 옵션은 첫 번째 페이지를 정상적으로로드 한 다음 javascript가 페이지 해시를 검사하여 해당 페이지를로드하는 것입니다.

매우 작은로드 (10 명로드가 '빠름'이라고 가정 함)의 경우 UI를 너무 많이 사용해서는 안되기 때문에 두 번째 옵션이 가장 좋습니다.

옵션 1에는 검색 엔진이로드되지 않은 콘텐츠의 색인을 생성하지 않으므로 SEO가 진행될 때까지 단점이 있습니다.

+0

옵션 1은 스크립트와 호환되지 않습니다. – Dave

관련 문제