Ich habe ein Abzeichen "neue Gegenstände" auf einer Seite, die ich sofort aktualisieren möchte die Seite aus dem Cache geladen wird (d. H. Wenn Sie "Zurück" oder "Weiter" drücken, um zu dieser Seite zurückzukehren). Was ist der beste Weg, dies zu erreichen?Wird meine Seite aus dem Browser-Cache geladen?
Das Setup ist ziemlich einfach. Das Layout für die App sucht alle 8 Sekunden nach neuen Objekten und aktualisiert die Badge + Liste der Elemente entsprechend.
$(function() {
setInterval(App.pollForNewItems, 8000);
});
Wenn jemand von dieser Seite weg navigiert, um sich die Details eines Objekts anzusehen, kann viel passieren. Die Dinge sind "neu", bis alle Benutzer hat sie angezeigt, und die App wird wahrscheinlich mehrere Benutzer haben es gleichzeitig (die Art von Workflow für ein Call-Center oder Support-Tickets verwendet).
Um sicherzustellen, dass die Abzeichen sind immer auf dem neuesten Stand, die ich habe:
$(window).bind('focus load', function (event) {
App.pollForNewItems();
});
..und obwohl dies funktioniert, Polling für neue Elemente auf ‚Last‘ ist nur dann sinnvoll, wenn die Seite geladen wird von der Cache. Gibt es eine zuverlässige Cross-Browser-Möglichkeit, um festzustellen, ob eine Seite aus dem Cache geladen wird?
Ich würde nicht auf dem Server und Client hängen besonders gut synchronisiert werden:/ – Matchu
Das Problem dabei ist, dass Sie die Synchronisierung von Uhren gehen davon aus. Die Zeit in JS wird von der Zeit des lokalen Computers bestimmt, die sich erheblich von der Serverzeit unterscheiden kann. – Yahel
Gute Punkte, ich werde aktualisieren, um UTC zu verwenden. – jball