서버 측 로직에 따라 두 가지 접근 방식이있을 수 있습니다.
접근법 1 : 서버가 객체 상태를 처리 할만큼 똑똑하지 않은 경우.
캐시 된 모든 레코드 고유 ID를 서버에 보낼 수 있습니다 (예 : [ "id1", "id2", "id3", "id4", "id5", "id6", "id7", "id8", "id9", "id10"] 및 부울 매개 변수를 사용하여 새 레코드를 요청하는지 (새로 고치기 위해) 또는 기존 레코드를로드하는지 (더 많이로드)를 알 수 있습니다.
서버는 [ "id1", "id2", "id3", "id4", "id5", "에서 삭제 된 레코드의 ID뿐만 아니라 새 레코드 (풀 레코드를 통해 더 많은 레코드 또는 새 레코드를로드)를 반환해야합니다. id6 ","id7 ","id8 ","id9 ","id10 "].
예 :-
더로드를 요청하는 경우 요청은 다음과 같습니다.
{
"isRefresh" : false,
"cached" : ["id1","id2","id3","id4","id5","id6","id7","id8","id9","id10"]
}
이제 이전 레코드를 요청하고 (더로드) 누군가가 "id2"레코드를 업데이트하고 "id5"및 "id8"레코드가 서버에서 삭제되었다고 가정하면 서버 응답은 다음과 같아야합니다.
{
"records" : [
{"id" :"id2","more_key":"updated_value"},
{"id" :"id11","more_key":"more_value"},
{"id" :"id12","more_key":"more_value"},
{"id" :"id13","more_key":"more_value"},
{"id" :"id14","more_key":"more_value"},
{"id" :"id15","more_key":"more_value"},
{"id" :"id16","more_key":"more_value"},
{"id" :"id17","more_key":"more_value"},
{"id" :"id18","more_key":"more_value"},
{"id" :"id19","more_key":"more_value"},
{"id" :"id20","more_key":"more_value"}],
"deleted" : ["id5","id8"]
}
그러나이 경우 500 개의 로컬 캐시 된 레코드가 500이라고 가정하면 요청 문자열이 다음과 같이 너무 길어집니다.
{
"isRefresh" : false,
"cached" : ["id1","id2","id3","id4","id5","id6","id7","id8","id9","id10",………,"id500"]//Too long request
}
접근 방식 2 : 서버가 날짜에 따라 객체 상태를 처리 할 수있을 정도로 똑똑한 경우.
첫 번째 레코드의 ID, 마지막 레코드 및 이전 요청 시간을 보낼 수 있습니다. 이런 식으로 캐시 된 레코드가 많더라도 요청이 항상 적습니다.
예 :-
더로드를 요청하는 경우 요청은 다음과 같습니다.
{
"isRefresh" : false,
"firstId" : "id1",
"lastId" : "id10",
"last_request_time" : 1421748005
}
서버는 last_request_time 이후에 삭제 된 삭제 된 레코드의 ID를 반환하고 "id1"과 "id10"사이의 last_request_time 이후에 업데이트 된 레코드를 리턴해야합니다.
{
"records" : [
{"id" :"id2","more_key":"updated_value"},
{"id" :"id11","more_key":"more_value"},
{"id" :"id12","more_key":"more_value"},
{"id" :"id13","more_key":"more_value"},
{"id" :"id14","more_key":"more_value"},
{"id" :"id15","more_key":"more_value"},
{"id" :"id16","more_key":"more_value"},
{"id" :"id17","more_key":"more_value"},
{"id" :"id18","more_key":"more_value"},
{"id" :"id19","more_key":"more_value"},
{"id" :"id20","more_key":"more_value"}],
"deleted" : ["id5","id8"]
}
당겨 새로 고침 :-
더로드