Abhängig von Ihrer serverseitigen Logik kann es zwei Ansätze geben.
Ansatz 1: Wenn der Server nicht intelligent genug ist, um Objektzustände zu verarbeiten.
Sie können alle zwischengespeicherten eindeutigen IDs des Datensatzes an den Server senden, z. B. ["id1", "id2", "id3", "id4", "id5", "id6", "id7", "id8", "id9", "id10"] und ein boolescher Parameter, um festzustellen, ob Sie neue Datensätze anfordern (zum Aktualisieren ziehen) oder alte Datensätze (mehr laden).
Ihr Server sollte dafür verantwortlich sein, neue Datensätze (mehr Datensätze oder neue Datensätze per Pull zum Aktualisieren laden) sowie IDs gelöschter Datensätze aus ["id1", "id2", "id3", "id4", "id5", "zurückzugeben. id6 "," id7 "," id8 "," id9 "," id10 "].
Beispiel: -
Wenn Sie mehr laden möchten, sollte Ihre Anfrage ungefähr so aussehen: -
{
"isRefresh" : false,
"cached" : ["id1","id2","id3","id4","id5","id6","id7","id8","id9","id10"]
}
Angenommen, Sie fordern alte Datensätze an (mehr laden) und nehmen an, dass der Datensatz "id2" von jemandem aktualisiert wird und die Datensätze "id5" und "id8" vom Server gelöscht werden. Dann sollte Ihre Serverantwort ungefähr so aussehen: -
{
"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"]
}
In diesem Fall ist Ihre Anforderungszeichenfolge jedoch zu lang, wenn Sie viele lokal zwischengespeicherte Datensätze mit 500 angenommen haben: -
{
"isRefresh" : false,
"cached" : ["id1","id2","id3","id4","id5","id6","id7","id8","id9","id10",………,"id500"]//Too long request
}
Ansatz 2: Wenn der Server intelligent genug ist, um Objektzustände nach Datum zu verarbeiten.
Sie können die ID des ersten Datensatzes und des letzten Datensatzes sowie die Epoche der vorherigen Anforderung senden. Auf diese Weise ist Ihre Anfrage immer klein, selbst wenn Sie eine große Anzahl zwischengespeicherter Datensätze haben
Beispiel: -
Wenn Sie mehr laden möchten, sollte Ihre Anfrage ungefähr so aussehen: -
{
"isRefresh" : false,
"firstId" : "id1",
"lastId" : "id10",
"last_request_time" : 1421748005
}
Ihr Server ist dafür verantwortlich, die IDs der gelöschten Datensätze zurückzugeben, die nach der letzten_Anforderungszeit gelöscht werden, sowie den aktualisierten Datensatz nach der letzten_Anforderungszeit zwischen "ID1" und "ID10" zurückzugeben.
{
"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"]
}
Zum Aktualisieren ziehen: -
Mehr laden