2017-03-02 9 views
1

Meine Anwendung hat eine Löschregistrierungsfunktion, wo ich eine Anfrage an den Server senden muss, um meinen Benutzer zu entfernen, und natürlich muss ich alle lokalen Daten vom Gerät löschen. Request und Storage Clear wurden korrekt ausgeführt, aber nach der erneuten Registrierung mit demselben Benutzer wurden die Daten der vorherigen Sitzung immer noch auf den Seiten angezeigt.HTTP-Cache in Angular2 deaktivieren oder leeren

Es sieht so aus, als ob es vom http-Service-Cache verursacht wird, und wenn ich nach dem Löschen der Registrierung exitApp() aufruft, funktioniert es korrekt und zeigt keine Daten aus der vorherigen Registrierung an. ExitApp scheint jedoch nicht auf iOS zu funktionieren.

Das ist also eine 2in1 Frage, sorry.

So wie kann ich dem http-Dienst mitteilen, dass alle früheren zwischengespeicherten Anforderungen jetzt gelöscht werden sollten? Oder wie kann ich die App auf iOS beenden, um vollständig zu beenden?

+0

Sind Sie sicher, dass dies der Cache von http und nicht ionische Seiten, die im Cache gespeichert werden? Verwenden Sie zum Überprüfen den Chrome-Inspektor auf den Netzwerkregisterkarten und vergewissern Sie sich, dass die Anfrage an Ihren Server abgeschlossen ist. – e666

+0

@ e666 Möglicherweise haben Sie recht, da auf der Registerkarte Netzwerk keine Daten vom Server zurückkommen. Aber ich lösche die Listen der Seiten, die lokal auf ionViewDidEnter arbeiten. Wie kann ich den Seitencache löschen? – Perrier

+1

Mögliches Duplikat von [Korrekter Weg, um Angular2 HTTP-Request-Caching im Internet Explorer (IE) zu verhindern] (http://StackOverflow.com/questions/36500804/proper-way-to-prevent-angular2-http-request-caching-in -internet-explorer-ie) – estus

Antwort

1

Sie sollten die Methode setRoot verwenden, um den DOM-Cache zu löschen, wenn Sie zum Anmeldebildschirm navigieren.

Beispiel:

deleteAccount() { 
    this.navCtrl.setRoot(LoginPage); 
} 

Nach Ionic Dokumentation:

standardmäßig Seiten werden zwischengespeichert und in der DOM-links, wenn sie weg navigiert werden, aber immer noch in dem Navigationsstapel (die spannendsten Seite auf einem Push() zum Beispiel). Sie werden zerstört, wenn sie aus dem Navigationsstapel entfernt werden (auf pop() oder setRoot()).

Sehen Sie hier für weitere Informationen: https://ionicframework.com/docs/v2/api/navigation/NavController/

+1

Ich benutze bereits setRoot, also muss mein Problem etwas anderes sein. – Perrier

Verwandte Themen