2012-03-15 4 views
1

기본적으로 more 버튼을 만드는 기본적인 페이징을 달성하기 위해 객체 화 커서를 사용하고 있습니다. 사용자가 앞뒤로 이동할 수 있도록 링크를 빌드하는 데있어 objectify를 사용하여 페이징을 달성하는 최선의 방법은 무엇입니까? 더 페이지 목록 같은 뭔가 ..objectify를 사용하여 좋은 페이징 달성

1, 2, 3, 4, more

답변

0
당신은 FetchOptions.startCursor(..)FetchOptions.endCursor(..)

을 통해, 앞으로 뒤로 한 페이지에서 페이징을 만들기 위해 커서를 사용할 수

사용할 것보다 직접 페이징 링크를 만들려면 FetchOptions.limit(..)FetchOptions.offset(..).

주어진 페이지보다 먼저 오는 모든 항목을 가져 오므로 offset(..)은 매우 비쌉니다. 따라서 전체 세트의 사용법과 크기에 따라 키 세트를 미리로드하고 캐싱하면 더 편리 할 수 ​​있습니다. 또는 페이징을 검색으로 바꾸십시오.

+1

그는 Objectify를 사용하고 있습니다 ... –

+0

Objectify는 저수준 API를 중심으로 꽤 얇은 레이어입니다. 실제로 저급 API의 커서를 사용합니다. http://code.google.com/p/objectify-appengine/wiki/IntroductionToObjectify #Curors –

+0

그렇습니다. 그러나 objectify의 커서에 액세스하는 구문은 아니며, 웹 사이트의 페이지 매김에서는 커서를 전혀 사용하지 않습니다. 내가 목록에 열쇠를로드하고 세션이나 자바 스크립트 페이지에 막대기. –

2

아마도 가장 좋은 방법은 전체 결과 집합에 대한 키를 가져 와서 세션이나 자바 스크립트에 숨기는 것입니다. 각 next/previous는 id로 목록의 다음 항목을로드 할 수 있습니다. 이드의로드는 매우 저렴합니다. 너비가 너무 크지는 않지만 그것이 가져 오는 객체의 종류에 달려있는 한 전체 쿼리 결과를 memcache에 캐시 할 수 있습니다.