문제

는 경우에 한하고 싶어 페이지를 매기 결과 데이터 소스에서 지원하는 매김 우리가 가야하는 프로세스의:

  1. 을 정의하는 페이지의 크기는 수을 보여주는 결과 페이지 당;
  2. 가 각 요청된 페이지를 사용하여 사용자가 오프셋=페이지 번호(0 기반)*페이지 크기
  3. 쇼의 결과를 가져 페이지입니다.

이 모든 것이 잘 작동하지 않는다는 사실을 고려 작동에 영향을 미칠 수 있습 백엔드 시스템는 나사로 매김습니다.내가 말하는 사람에 대한 데이터를 삽입하는 사이에 페이지를 인출 또는 삭제하는 데이터입니다.

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 다.

  1. 데이터 가져오 업데이트한자
  2. 구현할 수 있는 몇 가지 종류의 캐싱하는 방법을 보유할 체(이 되지 않을 수도 있습니다 는 경우에는 옵션과 함께 일 대형 데이터)
  3. 당신이 할 수있는 비교 각 페이지에서 작동 및 통지 는 경우 사용자의 총 횟수를 기록 변경

.

다른 팁

는 경우에 당신을 업데이트가 관심은 주로 새로운 삽입(예를 들어,자체 유래 것 같다에서 고통을 때 이 문제를 해결하는 페이징을 통해 질문하고 새로운 질문을 올)방법 중 하나 그것을 처리하는 타임 스탬프행할 때 첫 번째 매김 쿼리를 제한하는 결과에 대한 요청의 다음 페이지의 항목하는 존재하기 전에는 타임 스탬프.

는 한 사용자가 이해할 수 있는 기초 데이터는 항상 변경되지 않 혼동된다.그래서 그냥 그렇게 간단한 방법입니다.

할 수 있습 캐시 첫 번째 페이지의 결과 및 사용하는을 위한 이후 검토하지만,다음의 결과와 동기화 데이터베이스는 더욱 더 복잡하다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top