Có thể có hai cách tiếp cận tùy thuộc vào logic phía máy chủ của bạn.
Cách tiếp cận 1: Khi máy chủ không đủ thông minh để xử lý các trạng thái đối tượng.
Bạn có thể gửi tất cả id duy nhất của bản ghi được lưu trong bộ nhớ cache đến máy chủ, ví dụ: "id1", "id2", "id3", "id4", "id5", "id6", "id7", "id8", "id9", "id10"] và tham số boolean để biết bạn đang yêu cầu bản ghi mới (kéo để làm mới) hoặc bản ghi cũ (tải thêm).
Máy chủ của bạn phải có trách nhiệm trả lại các bản ghi mới (tải thêm bản ghi hoặc bản ghi mới thông qua pull để làm mới) cũng như id của các bản ghi đã bị xóa từ ["id1", "id2", "id3", "id4", "id5", " id6 "," id7 "," id8 "," id9 "," id10 "].
Ví dụ: -
Nếu bạn đang yêu cầu tải nhiều hơn thì yêu cầu của bạn sẽ giống như thế này: -
{
"isRefresh" : false,
"cached" : ["id1","id2","id3","id4","id5","id6","id7","id8","id9","id10"]
}
Bây giờ, giả sử bạn đang yêu cầu các bản ghi cũ (tải thêm) và giả sử bản ghi "id2" được cập nhật bởi ai đó và các bản ghi "id5" và "id8" bị xóa khỏi máy chủ thì phản hồi máy chủ của bạn sẽ giống như thế này: -
{
"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"]
}
Nhưng trong trường hợp này nếu bạn có nhiều bản ghi lưu trữ cục bộ giả sử 500, thì chuỗi yêu cầu của bạn sẽ quá dài như sau: -
{
"isRefresh" : false,
"cached" : ["id1","id2","id3","id4","id5","id6","id7","id8","id9","id10",………,"id500"]//Too long request
}
Cách tiếp cận 2: Khi máy chủ đủ thông minh để xử lý các trạng thái đối tượng theo ngày.
Bạn có thể gửi id của bản ghi đầu tiên và bản ghi cuối cùng và thời gian kỷ nguyên yêu cầu trước đó. Theo cách này, yêu cầu của bạn luôn nhỏ ngay cả khi bạn có một lượng lớn các bản ghi được lưu trong bộ nhớ cache
Ví dụ: -
Nếu bạn đang yêu cầu tải nhiều hơn thì yêu cầu của bạn sẽ giống như thế này: -
{
"isRefresh" : false,
"firstId" : "id1",
"lastId" : "id10",
"last_request_time" : 1421748005
}
Máy chủ của bạn có trách nhiệm trả lại id của các bản ghi đã bị xóa sau last_Vquest_time cũng như trả về bản ghi được cập nhật sau last_Vquest_time giữa "id1" và "id10".
{
"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"]
}
Kéo để làm mới:-
Tải thêm