Frage

Ich bin mit localstorage gmail-Stil automatischen Speicherung auf einer Webseite zu tun.

Also habe ich im Grunde speichern alle 30 Sekunden, um lokale, OK.

Das Problem ist Erholung. Ich kann nicht erkennen, ob ein Benutzer abgestürzt ist oder nicht ordnungsgemäß beendet.

Lassen Sie uns also sagen, dass der Benutzer abgestürzt und Lasten bis die Form wieder, ich kann nicht einfach weiter zu sparen und die bisherigen automatisches Speichern überschrieben wird. Ich brauche die vorherigen speichern.

wiederherstellen

Aber lassen Sie uns sagen, dass der Benutzer zum Absturz nicht. Er tat alles richtig, aber dann einen anderen Browser zu bearbeiten die gleiche Datei, so dass keine neue Daten zu dem vorherigen Browser localstorage verwendet.

Er lädt dann auf die Datei im vorherigen Browser. Die local sollte in diesem Fall nicht wieder hergestellt werden.

Angenommen, es gibt keine Möglichkeit, Zeitstempel zu vergleichen, wie kann ich dieses Problem lösen?

Danke.

War es hilfreich?

Lösung

Angenommen, Sie eine AJAX-Stil Seite wie Google Mail verwenden.

Halten Sie einen boolean-Flag auf der Seite Ebene, aber außerhalb local und außerhalb einer bestimmten Auffrischbereichs.

var bIsInited = false;

wird die Flagge falsch sein, wenn die gesamte Seite neu geladen wird, ob es vom Benutzer durch Klick auffrischen oder die Seite Laden zum ersten Mal (das heißt, nachdem der Browser neu gestartet werden).

Wenn dieser Flag auf UI Interaktion falsch ist, dann stellen Sie Ihren UI Zustand von localstorage und das Kennzeichen auf true gesetzt.

Weiter neuen Änderungen an local persistierende (es sei denn, wie zuvor, hat die Flagge durch einige Mittel auf false gesetzt worden, wobei in diesem Fall ist es das gleiche Signal localstorage in der Benutzeroberfläche zu lesen, bevor die Benutzeroberfläche zurück zu local Schreiben).

Es gibt viele Variationen dieser Strömung aber das ist der Kern von ihm.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top