Eine Aktualisierungs-/Versionsnummer (entweder der Zeitpunkt der Aktualisierung oder eine aufsteigende ganze Zahl) ist der richtige Weg. Ich mache das in meiner App.
Einige Tipps:
1 Verwendung memcache anstatt die Daten in der Datenbank zu speichern. Dies senkt die Belastung der Datenbank und führt zu einer schnelleren Beantwortung der Abfragen.
2 Gibt es nur einen Datensatz, der alle 15 Minuten aktualisiert wird? Wenn ja, könnte der Cache-Schlüssel ein einfaches "data_ver" sein. Wenn es mehrere Datensätze gibt, von denen jeder seinen eigenen Aktualisierungszyklus hat, sollte die Nummer des Datensatzes als Teil des Schlüssels aufgenommen werden. Z.B. data__ver oder data_1_ver, data_2_ver, usw.
3 Anstatt den Client raten zu lassen, ob das Laden der Daten abgeschlossen ist oder nicht (Sie haben in einem Kommentar vorgeschlagen, 60 Sekunden zu warten), wäre es viel besser für den Datenladeprozess, um anzuzeigen, dass er abgeschlossen ist. -- Und wenn er abgeschlossen ist, würde die Version aktualisiert werden.
4 Ein Vorteil der Speicherung eines Versionsdatums/einer Versionszeit anstelle einer einfachen Zahl besteht darin, dass Sie dem Benutzer eine Statusmeldung wie "Data updated 1 Jan 2010 11:12 AM EST" geben können. Beachten Sie die Zeitzonenproblematik - Ihre Clients befinden sich möglicherweise NICHT in derselben Zeitzone wie der Server. Sie könnten sich östlich oder westlich des Servers befinden.
5 Wenn Sie auf dem Client warten wollen, bis sich die Dinge nach einer Änderung "beruhigt" haben, können Sie einen lokalen Zeitgeber im Browser starten. Sie müssen sich nicht um die Synchronisierung der Uhren zwischen Browser und Server kümmern. Warten Sie einfach 60 Sekunden nach der Änderung der Aktualisierungsnummer, bevor Sie die neuen Daten herunterladen.
6 Wenn Sie viele Clients haben und der Datendownload eine beträchtliche Größe hat, sollten Sie darüber nachdenken, auf dem Client eine zufällige Verzögerung von 0-90 Sekunden oder so einzubauen, nachdem die Version geändert wurde und bevor der Download angefordert wird. Andernfalls kann es dazu kommen, dass alle Clients versuchen, die aktualisierten Daten auf einmal herunterzuladen.