2016-05-12 14 views
0

Hintergrundinformationen:Force-Benutzer Seite neu zu laden

  1. I JavaScript, die eine AJAX-Anfrage macht.
  2. ich eine Version URL-Parameter verwende, um sicherzustellen, dass, wenn eine Seite geladen wird es die neueste Version der Datei JavaScript bekommt: /path/to/file.js?v=20160511

Das Problem, das ich brauche jetzt zu lösen ist, wenn ich eine Änderung der machen Daten, die vom AJAX-Aufruf zurückgegeben werden (ich nehme an, dies wird als API-Unterbrechung betrachtet) und die JavaScript-Datei (Client). Mein erster Gedanke wäre, den Benutzer irgendwie zu zwingen, die Seite neu zu laden, wenn ich eine Änderung an der API erteile. Was ist ein guter Prozess, um sicherzustellen, dass der Client und der Server synchron bleiben?

+2

Sie können Benachrichtigungen von Server zu Client mit Hilfe von Websocket-Verbindung senden. Wenn Sie die Benachrichtigung auf der Clientseite bearbeiten, können Sie das erneute Laden der Seite erzwingen. Alternativ können Sie den Server vom Client aus abfragen, der jedes Mal fragt, ob ich updaten soll. Wenn die Serverseite das Flag aktualisiert, müssen die Clients neu geladen werden. Persönlich empfehle ich dringend die erste Lösung. –

Antwort

0

Basierend auf Uğurcan 's Kommentar und Hullu2000' s answer, fügte ich zwei Dinge zu meiner aktuellen Implementierung. Die Summe der notwendigen Elemente sind:

  1. Die in Seite verwiesen JavaScript hat eine Version URL-Parameter, um sicherzustellen, dass, wenn eine Seite geladen wird es die neueste Version der JavaScript-Datei: /path/to/file.js?v=20160511
  2. Der API-Aufruf gibt einen JSON Antwort mit einer API-Versionszeichenfolge
  3. Das JavaScript überprüft die API-Antwortversionszeichenfolge auf eine lokale Variable. Wenn sie nicht übereinstimmen, ruft sie window.location.reload();
1

Sie können AJAX verwenden, um '' location.reload(); '' auf dem Client auszulösen.

Verwandte Themen