我已經使用IONIC 2創建了一個應用程序。我的所有頁面都需要通過REST API進行加載,並且有時很煩人,在每個選項卡中重新加載了geting而沒有更新。IONIC2高速緩存管理
現在我想通過實現緩存到我的應用程序來改善這一點。我希望它像每個http請求在首次使用當前時間戳之後保存,2小時後它將通過REST Api加載內容。
任何例子都會很棒。我試過使用這個插件https://github.com/Nodonisko/ionic-cache,但安裝後出現了一些問題,顯示錯誤。
使用Sqlite會更好,但我不知道,並尋求專家的建議。
這裏是我的主頁代碼: -
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();
});
}
這是我的服務提供商頁: -
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();
});
}
}
感謝SANNY
我需要首先創建一個供應商來實現這個代碼?對不起,我是新人,對我來說不夠理解。 –
是的,第一個片段的代碼是提供者的整個代碼,所以你需要創建這個文件,然後粘貼它(應該像它一樣工作,但是因爲我已經刪除了一些部分以簡化它,可能會有一些複製/粘貼問題)。第二個片段是當你想從服務器獲取數據時,你如何使用來自其他服務/頁面的服務。 – sebaferreras
它顯示錯誤'無法找到名稱CacheService',我已經使用「cacheitem.model';」中的「import {CacheService}導入了我的服務頁面中的新文件。這個文件位於我爲我的web api使用注入的相同文件夾中。請建議。 –