업데이트된 콘텐츠의 다음 페이지를 어떻게 제공하나요?

StackOverflow https://stackoverflow.com/questions/38680

  •  09-06-2019
  •  | 
  •  

문제

질문을 더 잘 구성하는 방법을 알고 있다면 제목을 자유롭게 편집하세요.(태그도 문제입니다.) 이런 일반적인 형태로는 문제가 너무 어려울 수 있으니 구체적인 예를 들어보겠습니다.

요청하면 여러 가지 stackoverflow 질문이 표시됩니다. /questions ?sort=newest 페이지.다음 페이지 링크는 다음으로 연결됩니다. /questions?page=2 &sort=newest.서버 측에서 요청이 LIMIT 절을 사용하여 SQL 쿼리로 변환된다고 가정합니다.이 접근 방식의 문제점은 사용자가 첫 번째 페이지를 탐색하는 동안 새 질문이 추가되면 두 번째 페이지가 이미 본 몇 가지 질문으로 시작된다는 것입니다.(페이지당 10개의 질문이 있고 우연히 10개의 새로운 질문이 추가된 경우 두 번째에도 정확히 동일한 내용을 받게 됩니다!)

이 일반적인 문제를 해결하는 우아한 방법이 있습니까?적어도 stackoverflow의 경우에는 아니지만 여전히 그렇게 큰 문제는 아니라는 것을 알고 있습니다.

내가 가진 가장 좋은 아이디어는 (클라이언트 당 요청 기록을 저장하는 것 외에) 다음을 사용하는 것입니다. /questions?answer_id=NNN 체재.서버는 요청된 답변으로 시작하는 페이지를 반환하고 다음 페이지의 첫 번째 답변 ID를 다음 페이지 링크에 넣습니다.이를 위해서는 SQL을 작성하는 방법이 있어야 합니다. 그렇죠?

일반적으로 어떻게 이루어지나요?아니면 더 좋은 방법이 있나요?

도움이 되었습니까?

해결책

이것은 쉬운 방법이 아닙니다.예를 들어 여기 stackoverflow의 "응답 없음" 목록은 투표 수를 기준으로 정렬됩니다.따라서 보고 있는 페이지의 마지막 ID(쿠키, 요청, 세션 등)를 저장하고 귀하가 2페이지를 탐색하는 동안 누군가 게시물에 찬성 투표를 한 경우, 최근에 찬성 투표를 했기 때문에 3페이지는 완료되지 않습니다. 게시물이 1페이지 또는 2페이지로 이동되었을 수 있습니다.

이를 수행하는 유일한 방법은 누군가의 세션에서 전체 목록을 로드하는 것입니다.제발 그러지 마세요...

이미 언급했듯이, 이제 사람들이 이것에 익숙해졌기를 바랍니다.

다른 팁

내가 본 대부분의 웹 사이트는 이 문제를 해결하지 못했습니다. 그들은 이미 본 일부 콘텐츠가 포함된 페이지를 표시합니다.

이를 기능이라고 생각할 수 있습니다. "다음"을 클릭하고 이전에 본 일부 콘텐츠가 표시되면 이는 새로운 콘텐츠가 있기 때문에 다시 앞으로 돌아가고 싶다는 신호입니다.

데이터베이스에 입력된 시간으로 각 질문에 태그를 지정하고, 첫 페이지가 마지막으로 로드된 시간을 쿠키나 URL의 일부로 전달하고, 검색 항목을 항목으로 제한합니다. n ~을 통해 n+displaynum 앞으로 나아가면서.

그러나 나는 귀찮게하지 않을 것입니다.이 동작은 대부분의 사용자가 기대할 만큼 균일하며 새 데이터를 사용할 수 있는 시기를 나타내는 플래그 역할을 합니다.목록 맨 위에서 다시 시작하는 새 탭/창을 열어 무슨 일이 일어났는지 확인할 수도 있습니다.

나는 SQL(MySQL용)이 다음과 같을 것이라고 생각합니다.

SELECT * 
FROM   entries 
WHERE  entry_id >= @last_viewed_entry_id 
ORDER BY entry_id 
LIMIT 50
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top