Sunucu tarafı mantığınıza bağlı olarak iki yaklaşım olabilir.
Yaklaşım 1: Sunucu nesne durumlarını işleyecek kadar akıllı olmadığında.
Önbelleğe alınmış tüm benzersiz benzersiz kimlikleri sunucuya gönderebilirsiniz, örneğin ["id1", "id2", "id3", "id4", "id5", "id6", "id7", "id8", "id9", "id10"] ve yeni kayıtlar (yenilemek için çekin) veya eski kayıtlar (daha fazla yükle) isteyip istemediğinizi bilmek için bir boole parametresi.
Sunucunuz yeni kayıtları (daha fazla kayıt veya yenileme için yeni kayıtları yükle) ve ayrıca ["id1", "id2", "id3", "id4", "id5", " Parça tanıtımı6" , "ID7", "ID8", "id9", "ID10"].
Örnek: -
Daha fazla yük talep ediyorsanız, talebiniz aşağıdaki gibi görünmelidir: -
{
"isRefresh" : false,
"cached" : ["id1","id2","id3","id4","id5","id6","id7","id8","id9","id10"]
}
Şimdi eski kayıtları talep ettiğinizi (daha fazla yükle) ve "id2" kaydının biri tarafından güncellendiğini ve "id5" ve "id8" kayıtlarının sunucudan silindiğini varsayalım: Sunucu yanıtınız şöyle görünmelidir: -
{
"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"]
}
Ancak, bu durumda çok sayıda yerel önbellek kaydınız varsayalım 500, istek dizeniz şu şekilde çok uzun olacaktır: -
{
"isRefresh" : false,
"cached" : ["id1","id2","id3","id4","id5","id6","id7","id8","id9","id10",………,"id500"]//Too long request
}
Yaklaşım 2: Sunucu, tarihe göre nesne durumlarını işleyecek kadar akıllı olduğunda.
İlk kaydın ve son kaydın ve önceki istek çağının zamanının kimliğini gönderebilirsiniz. Bu şekilde, büyük miktarda önbelleğe alınmış kayıtlarınız olsa bile isteğiniz her zaman küçük olur
Örnek: -
Daha fazla yük talep ediyorsanız, talebiniz aşağıdaki gibi görünmelidir: -
{
"isRefresh" : false,
"firstId" : "id1",
"lastId" : "id10",
"last_request_time" : 1421748005
}
Sunucunuz, last_request_time öğesinden sonra silinen silinmiş kayıtların kimliklerini ve "id1" ile "id10" arasında last_request_time öğesinden sonra güncellenmiş kaydı döndürmekle sorumludur.
{
"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"]
}
Tazelemek için çek:-
Daha fazla yükle