如何缓存ANgularJS$http调用返回的数据?

如何缓存ANgularJS$http调用返回的数据?,angularjs,Angularjs,我有一些AngularJS Javascript代码调用web服务 并获取一个简单的对象数组: this.$http({url: '/api/Action/GetActions', method: "GET" }) .success((data) => { self.Actions = data; }) 有没有什么方法可以缓存这个,这样我就不需要了 继续访问服务器?我不确定这是否有意义 不同之处在于,我使用量角器进行E2E测试。我也是 寻找一个解决方案,将与

我有一些AngularJS Javascript代码调用web服务 并获取一个简单的对象数组:

this.$http({url: '/api/Action/GetActions', method: "GET" })
    .success((data) => {
       self.Actions = data;
    })
有没有什么方法可以缓存这个,这样我就不需要了 继续访问服务器?我不确定这是否有意义 不同之处在于,我使用量角器进行E2E测试。我也是 寻找一个解决方案,将与量角器一起工作。 理想情况下,我希望只使用AngularJS代码来实现这一点 除非确实需要,否则不要使用外部库

这是一个使用
localStorage
的示例

var app = angular.module('app',[]);

app.controller('appCtrl', function($scope, $http){

  $scope.getData = function(){
    if(!localStorage.getItem('ip')){
      $http.get('http://ip.jsontest.com/')
        .success(function(response){
          localStorage.setItem('ip', JSON.stringify(response));
          $scope.data = response 
          $scope.dataSource = 'Server';
        })
    }else{
      $scope.data = JSON.parse(localStorage.getItem('ip'));
      $scope.dataSource = 'Cache';
    }
  };

});

您是否查看过web
localStorage
sessionStorage
?对不起,我不太清楚。我想使用本地存储,但我不知道如何使用。有没有办法让它只在本地存储中存储数据一小时或直到浏览器会话关闭?会话存储将在会话过期后清除数据。至于在一段时间后清除,我想你可以设置一个超时,在一小时后清除它。