문제
는 경우에 한하고 싶어 페이지를 매기 결과 데이터 소스에서 지원하는 매김 우리가 가야하는 프로세스의:
- 을 정의하는 페이지의 크기는 수을 보여주는 결과 페이지 당;
- 가 각 요청된 페이지를 사용하여 사용자가 오프셋=페이지 번호(0 기반)*페이지 크기
- 쇼의 결과를 가져 페이지입니다.
이 모든 것이 잘 작동하지 않는다는 사실을 고려 작동에 영향을 미칠 수 있습 백엔드 시스템는 나사로 매김습니다.내가 말하는 사람에 대한 데이터를 삽입하는 사이에 페이지를 인출 또는 삭제하는 데이터입니다.
page_size = 10;
get page 0 -> results from 0 to 9;
user inserts a record that due to the query being executed goes to page 0 - the one just shown;
get page 1 -> results from 10 to 19 - the first results on the page is the result on the old page 0.
설명된 동작에 혼란을 일으키는 원인이 될 수 있을 뷰어입니다.당신이 알고 있는 모든 실용적인 솔루션을 해결 방법이 이 문제를 해결합니다.
해결책
거기에 몇 가지 생각의 학교 o 다.
- 데이터 가져오 업데이트한자
- 구현할 수 있는 몇 가지 종류의 캐싱하는 방법을 보유할 체(이 되지 않을 수도 있습니다 는 경우에는 옵션과 함께 일 대형 데이터)
- 당신이 할 수있는 비교 각 페이지에서 작동 및 통지 는 경우 사용자의 총 횟수를 기록 변경
.
다른 팁
는 경우에 당신을 업데이트가 관심은 주로 새로운 삽입(예를 들어,자체 유래 것 같다에서 고통을 때 이 문제를 해결하는 페이징을 통해 질문하고 새로운 질문을 올)방법 중 하나 그것을 처리하는 타임 스탬프행할 때 첫 번째 매김 쿼리를 제한하는 결과에 대한 요청의 다음 페이지의 항목하는 존재하기 전에는 타임 스탬프.
는 한 사용자가 이해할 수 있는 기초 데이터는 항상 변경되지 않 혼동된다.그래서 그냥 그렇게 간단한 방법입니다.
할 수 있습 캐시 첫 번째 페이지의 결과 및 사용하는을 위한 이후 검토하지만,다음의 결과와 동기화 데이터베이스는 더욱 더 복잡하다.
제휴하지 않습니다 StackOverflow