Page 403 - AngularJS权威教程
P. 403

28.3  $http 中的缓存    383


                  $http({                                                                            19
                      method: 'GET',
                      url: '/api/users.json',
                      cache: true
                  });                                                                                20
                  // 或者使用辅助方法.get()
                  $http.get('/api/user.json', {
                      cache: true                                                                    21
                  });
                  现在,通过$http到URL/api/user.json的每个请求将会存储到默认的$http缓存中。这个
              $http缓存中的请求键就是完整的URL路径。                                                                22

                  通过在$http选项中传入参数true,可以告诉$http服务使用默认的缓存。如果我们不想经
              常干扰那些缓存,使用默认缓存是很有用的。                                                                   23

                  然而,如果需要,也可以操作这个默认的$http缓存(比如,如果我们发起的另外一个没有
              缓存的请求提醒我们发生了增量变化,我们就可以在默认的$http请求中清除这个请求)。                                             24
                  为了引用$http的默认请求,只需通过$cacheFactory()使用ID来获取到该缓存:
                                                                                                     25
                  var cache = $cacheFactory('$http');
                  对于所掌控的缓存,我们可以在需要时进行所有的正常操作,比如检索已缓存的响应,从缓                                           26
              存中清除条目,或者消除所有缓存的引用。

                  // 获取上一次请求的缓存                                                                      27
                  var usersCache = cache.get('http://example.com/api.users.json');
                  // 删除上一次请求的缓存入口
                  cache.remove('http://example.com/api.users.json');                                 28
                  // 重新开始并移除全部缓存
                  cache.removeAll();
                  尽管可以引用默认缓存,但是有时候能够对缓存有更多的控制以及针对缓存的表现创建规则                                           29
              可能更有用。这就需要创建一个新的缓存来使用$http请求。

                                                                                                     30
              28.3.2  自定义缓存

                  通过自定义的缓存来让$http请求发起请求很简单。可以采用传递缓存实例的方式,而不必                                         31
              传递一个布尔参数true给请求。

                  var myCache = $cacheFactory('myCache');                                            32
                  $http({
                      method: 'GET',
                      utl: '/api/users.json',                                                        33
                      cache: myCache
                  });
                  // 或者使用辅助方法.get()
                  $http.get('/api/users.json', {                                                     34
                      cache: myCahe
                  });
                                                                                                     35
                  现在,$http将会使用自定义的缓存而非默认缓存。

                                                                                                     36
   398   399   400   401   402   403   404   405   406   407   408