आपके सर्वर साइड लॉजिक के आधार पर दो दृष्टिकोण हो सकते हैं।
दृष्टिकोण 1: जब सर्वर ऑब्जेक्ट स्टेट्स को संभालने के लिए पर्याप्त स्मार्ट नहीं है।
आप सभी कैश्ड रिकॉर्ड यूनिक आईडी सर्वर पर भेज सकते हैं, उदाहरण के लिए ["id1", "id2", "id3", "id4", "id5", "id6", "id7", "id8", "id9", "id10"] और एक बूलियन पैरामीटर यह जानने के लिए कि क्या आप नए रिकॉर्ड (ताज़ा करने के लिए पुल) या पुराने रिकॉर्ड (लोड अधिक) का अनुरोध कर रहे हैं।
आपके गंभीर को नए रिकॉर्ड वापस करने के लिए जिम्मेदार होना चाहिए (ताज़ा करने के लिए पुल के माध्यम से अधिक रिकॉर्ड या नए रिकॉर्ड लोड करें) और साथ ही आईडी के हटाए गए रिकॉर्ड से "" आईडी 1 "," आईडी 2 "," आईडी 3 "," आईडी 4 "," आईडी 5 "," 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 मान लिए हैं, तो आपका अनुरोध स्ट्रिंग इस तरह बहुत लंबा हो जाएगा: -
{
"isRefresh" : false,
"cached" : ["id1","id2","id3","id4","id5","id6","id7","id8","id9","id10",………,"id500"]//Too long request
}
दृष्टिकोण 2: जब दिनांक के अनुसार ऑब्जेक्ट राज्यों को संभालने के लिए सर्वर काफी स्मार्ट होता है।
आप पहले रिकॉर्ड और अंतिम रिकॉर्ड और पिछले अनुरोध के समय की आईडी भेज सकते हैं। इस तरह से आपका अनुरोध हमेशा छोटा होता है, भले ही आपके पास कैश्ड रिकॉर्ड की एक बड़ी मात्रा हो
उदाहरण: -
यदि आप अधिक लोड का अनुरोध कर रहे हैं तो आपके अनुरोध को कुछ इस तरह दिखना चाहिए: -
{
"isRefresh" : false,
"firstId" : "id1",
"lastId" : "id10",
"last_request_time" : 1421748005
}
आपका सर्वर हटाए गए रिकॉर्ड्स की आईडी को वापस करने के लिए ज़िम्मेदार है, जिसे last_request_time के बाद हटा दिया गया है और साथ ही "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"]
}
रीफ़्रेश करने के लिए खींचें:-
और लोड करें