爲此,我用angular-cache和使用angular-cache.min.js
。
更多信息:
我注射'angular-cache'
服務爲我的模塊。
然後,將我的AngularJS服務注入'CacheFactory'
。此外,我需要'$q'
作出響應對象。
然後:
function angularCacheSampleService($http, $q, cacheFactory, adminApiRoot) {
var self = this;
self.cacheList = cacheFactory('urlResponseCache', { maxAge: 300000, deleteOnExpire: 'aggressive' });
self.angularCacheSampleCompleteCode = function (dataSource) {
var deferred = $q.defer();
//read from cache
var responseList = self.cacheList.get(dataSource);
if (angular.isUndefined(responseList)) {
//not found in cache
self.apiResponse = $http({
method: 'GET',
cache: false,
url: dataSource
});
self.apiResponse
.then(function (response) {
self.cacheList.put(dataSource, response);
deferred.resolve(self.apiResponse);
}, function (response) {
deferred.reject(response);
});
} else {
//found in cache
deferred.resolve(responseList);
}
return deferred.promise;
};
注意:如果你讓你的方法內部緩存('urlResponseCache'
在此代碼),你將有運行時錯誤,因爲緩存已經建成之前,因此該功能之前定義。
你有試過嗎? –
你是什麼意思=在服務中緩存? – xAqweRx
如果我緩存服務,即使刷新頁面,數據也會保存。但它不是我所需要的。我想使用緩存數據,直到用戶在SPA中處於當前狀態。我不知道是否清楚。 – Elnaz