2012-04-21 4 views
0

100 개 제품이있는 웹 사이트가 있다고 해봅시다. 그런 다음 20 개의 제품이 각각 5 개 섹션으로 필터링됩니다. 20 개의 제품 (예 : 장난감)이 포함 된 섹션 중 하나에있는 경우 페이지 당 5 개의 장난감 만 표시하는 최적의 방법은 무엇입니까? 목록의 맨 아래에 다음/이전 버튼이 표시되어 다음/이전 세트의 5 개 장난감을 표시합니다.다음/이전 버튼을 사용하여 gql 쿼리 결과 간을 전환하는 방법

더 나은 비유는 google 검색 일 것입니다. 수백만 개의 결과가 있지만 주어진 시간에 ~ 10 개만 표시됩니다.

그래서 지금은 Google 애플 리케이션 엔진 (파이썬)과 장고 템플릿을 사용하고 있습니다. 이 문제를 해결하기 위해 생각한 한 가지 방법은 모든 쿼리 결과를 javascript로 수정하여 비슷한 효과를 얻을 수있는 div에 넣는 것입니다. 그러나 누군가가 브라우저의 뒤로 버튼을 클릭하면 원래 있던 곳으로 가지 않을 것입니다.

미리 감사드립니다. 어떤 도움이 구글에서 정말 유용 :(하지 않았다, 그래서 나는이 기술이라고 모르겠어요 ... 유용 할 것이다

편집 :는 응답에 따라, 내 질문은 여기에서 해결되었다 발견 : How to use cursor() for pagination?

답변

1

쿼리 cursors을 확인하십시오. Thay는 "다음"및 "이전"페이징 요청을 생성하는 데 사용되도록 직렬화되어 클라이언트에 전송되도록 만들어집니다.

참고 : 검색어에 offset을 사용하지 마십시오. 이것은 actually fetches (and charges) all entities up to offset+limit position과 같이 매우 비쌀 수 있지만 응용 프로그램에만 limit 결과가 반환됩니다.

0

모든 결과를 숨겨진 콘텐츠로 HTML에 넣고 JS를 사용하여 조작하는 것이 큰 결과를 얻는 경우 매우 좋습니다 (Google에서이 방법을 사용하면 어떤 일이 일어 났는지 생각해보십시오). 언급 한 뒷 기능 문제도 있습니다.

매번 원하는 "결과 페이지"를 쿼리하는 경우 Google의 GQL Reference이 도움이 될 수 있습니다. 특히 LIMIT 절을 자세히 살펴보고, "개수"로 원하는 페이지 당 항목 수와 항목 수를 제공하여 찾고있는 호출 메커니즘을 만드는 데 도움이 될 수 있습니다 이전에 "offset"(처음 호출시 0)으로 표시됩니다. 표시로

, 나는 Google 이미지/페이스 북 뉴스 피드 방식도 (대신 페이징의 스크롤에로드)에 대해 생각하는 재미있을 수 있다는 생각하지만, 그것은 개인의 선택 :

희망의 문제 이것은 도움이됩니다, 행운을 빌어 요!

EDIT : Peter의 답변을 읽은 후 커서를 페이지 매기기에 사용하는 것이 훨씬 효율적이라는 것을 알았습니다. 좋은 답변은 답변에 나와 있습니다.

+0

도움 주셔서 감사합니다. 나는 gql에 오프셋 절이 있다는 것을 몰랐다. 당신의 대답을 바탕으로'gae paging'에 대한 구글 검색을했고이 사이트를 찾았습니다 : https://developers.google.com/appengine/articles/paging – mrmo123

+0

페이스 북의 뉴스 피드 접근 방식은 정말 흥미 롭습니다 생각. 다시 한 번 감사드립니다! – mrmo123

+0

이 기사는 오래되어서 - 'offset'과'limit'을 사용하지 마십시오. 성능 및 비용에 심각한 영향을 미칠 수 있습니다. 대신 커서를 사용하십시오. –

관련 문제