@cardei wrote:
Hi,
I am trying to cache a http request to a forecast api, for 5 minutes and I don't know how to do it.
What i have until now it's caching first request and then it's giving result from cache forever.I can't find any documentation or samples on how to achieve this.
I also tried to use https://github.com/jmdobry/angular-cache but I can't make it work with ionic.Thanks!
This is may code:
app.factory('ForecastCache', function ($cacheFactory) { return $cacheFactory('ForecastCache', { capacity: 3, }); }); app.factory('Forecast', function($log, $AuthService, $http, Settings, $config, $cacheFactory, ForecastCache) { $log.info('Forecast factory loaded'); var forecastConditions = null; var url = 'https://api.forecast.io/forecast/' + $config.FORECASTIO_KEY +'/'; var getWeatherAtLocation = function(lat, lng) { if(ForecastCache.get('forecastConditions')) { forecastConditions = ForecastCache.get('forecastConditions'); $log.info('From cache'); $log.info(forecastConditions); } else { forecastConditions = $http.jsonp(url + lat + ',' + lng + '?callback=JSON_CALLBACK' + '&units=' + Settings.units + '&lang=' + Settings.lang,{ cache: true}); ForecastCache.put('forecastConditions', forecastConditions); $log.info('Cached'); $log.info(forecastConditions); } return forecastConditions; } // End getWeatherAtLocation return { getWeatherAtLocation: function (lat, lng) { return getWeatherAtLocation(lat, lng); } }
Posts: 1
Participants: 1