Ich habe eine App mit IONIC 2 erstellt. Meine alle Seiten müssen durch REST API geladen werden und manchmal ist es lästig, dass das Laden in jedem Tab ohne Updates neu geladen wird.IONIC2 Cache Management
Jetzt möchte ich dies durch die Implementierung Cache auf meine App verbessern. Ich möchte es wie jede HTTP-Anfrage wird nach dem ersten Mal mit dem aktuellen Zeitstempel gespeichert und nach 2 Stunden wird es den Inhalt über REST API laden.
Jedes Beispiel wäre großartig. Ich habe versucht, mit diesem Plugin https://github.com/Nodonisko/ionic-cache, aber es gibt ein Problem nach der Installation zeigte Fehler.
Mit Sqlite wäre besser ich kam zu wissen, aber ich bin nicht sehr sicher und auf der Suche nach einem Vorschlag von den Experten.
Hier meine Homepage-Code ist: -
import { WebService } from '../shared/services/web.service';
@Component({
selector: 'page-home',
templateUrl: 'home.html',
providers: [ WebService ]
})
constructor(
public navController: NavController,
private webService: WebService) {}
loadPosts() {
this.webService.getPosts(query)
.subscribe(data => {
key.posts = data;
loader.dismiss();
}, (err) => {
//Fail and log the err in console
loader.dismiss();
console.log("Some Issue");
let toast = this.toastController.create({
message: 'There is some issue with network',
duration: 10000
});
toast.present();
});
}
Dies ist mein Service-Provider-Seite: -
import { Injectable } from '@angular/core';
import { Http } from '@angular/http';
import { Config } from '../../../../app/app.config';
import 'rxjs/add/operator/map';
@Injectable()
export class WordpressService {
constructor(private storage: Storage, private http: Http, private config: Config) {}
public getPosts(query) {
query = this.transformRequest(query);
let url = this.config.webApiUrl + `/allposts?${query}&_embed`;
return this.http.get(url)
.map(result => {
return result.json();
});
}
}
Dank Sanny
Muss ich zuerst einen Anbieter erstellen müssen diesen Code zu implementieren? Entschuldigung, ich bin neu, nicht gut genug für mich zu verstehen. –
Ja, der Code des ersten Snippets ist der gesamte Code des Providers, also müssten Sie die Datei erstellen und einfügen (sollte funktionieren, wie es ist, aber da ich einige Teile entfernt habe, um es einfacher zu machen , möglicherweise gibt es einige Probleme beim Kopieren/Einfügen). Der zweite Ausschnitt besteht darin, wie Sie diesen Dienst von einem anderen Dienst/einer anderen Seite verwenden können, wenn Sie Daten vom Server abrufen möchten. – sebaferreras
Es wird der Fehler 'Name CacheService nicht gefunden' angezeigt. Ich habe die neue Datei bereits in meine Service-Seite importiert, indem ich "cache item.model '; import {CacheService};" verwende. Diese Datei befindet sich im selben Ordner, in dem ich injizierbare Inhalte für meine Web-API verwende. Bitte vorschlagen. –