2017-12-27 16 views
0

Ich habe ein Stück Daten, die ich aktualisieren möchte, wenn es abläuft, diese Daten haben einen gespeicherten Wert und Ablauf, die beide Datum/Uhrzeit in Millisekunden sind.Update Daten basierend auf Zeit im Browser abläuft

Ich versuche herauszufinden, der beste Weg, dies zu tun, ich denke, ich muss den Browser die Zeit verfolgen und wenn die aktuelle Zeit mit der Ablaufzeit übereinstimmt kann ich dann einen Anruf zu aktualisieren.

Ich bin mir nicht sicher, ob/was der Anruf wäre, um den Browser darauf aufmerksam zu machen? Das Projekt ist React App, ich erwog auch, socket.io als eine weitere Option zu verwenden.

edit: will mit setTimeout zu vermeiden, wie ich dies auf eine Lifecycle-Methode zu überprüfen. Im Idealfall, wenn ein Benutzer nie die Seite/Komponente verlässt, also keine neuen Lifecycle-Methoden ausgelöst werden, möchte ich das Update immer noch überprüfen und an sie senden.

Antwort

0

Wird es einen neuen Datenpunkt geben, sobald dieser abgelaufen ist?

Sie können überprüfen, wie lange die aktuellen Daten noch gültig sind, wenn sie bereitgestellt werden. Legen Sie dann für diese Dauer eine Zeitüberschreitung fest, die die Funktion aufruft, um den neuen Datenpunkt zu erhalten. Danach benutze diese Logik weiter. Im Grunde haben Sie einen Wert für die Variable setTimeout, der auf dem Ablaufdatum minus Date.now() basiert.

+0

ruft den gleichen Punkt, aber ich bin auf der Suche nach einer Möglichkeit, dies zu tun, ohne SetTimeout oder Überprüfung auf willMount, wenn ein Benutzer auf der Seite blieb und nie links, möchte ich noch aktualisieren. Leider bedeutet dies, dass der Benutzer niemals irgendwo hingeht, so dass ein Lebenszyklus nicht gestartet wird. –

+0

Nun, ich denke, Sie können einen Socket einrichten, der einen neuen Datenpunkt verschiebt und die Ansicht dieses Ereignisses aktualisiert. Wenn Sie ein statisches Objekt mit einem Ablaufdatum haben, müssen Sie etwas wie setTimeout ausführen. Sie könnten sogar das Back-End Zeitlimits für die Datenpunkte festlegen lassen und das Ereignis über einen Socket an alle Clients senden, die gerade zuhören. –

Verwandte Themen