这天下午,李庆安照例在城外的军营内处理军务,他刚刚得到消息,由于汉中失守,李亨已经下令从荆州撤军,二十万剑南军已经在撤回巴蜀的途中了,但这并不意味着李亨会反扑汉中,李庆安很了解李亨,在他没有吞并李瑁之间,他绝不敢两线作战,又对长安宣战。

“不过只要不被你捉住就行了。”艾斯咧嘴一笑,再强大的能力打不中就是没用:“火拳。”艾斯两拳齐出,两道巨大的火焰拳跨过层层距离直接落在了刘皓的身上,两道火焰拳刘皓躲都躲不了,显然被刘皓打伤之后他全力以赴了。

李逵劈鱼现金版下载

悟空驾云往南海来,他心里盘算,观音早晚都知道此事,莫不如主动告知,反倒显得心内坦荡,且看她如何处置红孩儿。
“我给你三个选择,第一个我会在天焚炼气塔每一层布下一个阵法,进去的人都会陷入幻境当中,一旦陷入幻境和现实是没区别的,每一层的幻境都对应不同程度的实力,在环境中他会经历世间百态,或是战场厮杀,或是人间百态等等。

虽然毁灭之力号称上帝之力,而且可以进行越级挑战。但是叶扬和凤凰之间的级别差的太多了,他们一个是‘仙’,一个是凡人,凡人再怎么强大,也不可能是仙的对手。

angularjs 缓存详解


一、什么是缓存

一个缓存就是一个组件,它可以透明地存储数据,以便未来可以更快地服务于请求。

缓存能够服务的请求越多,整体系统性能就提升得越多。

 

二、Angular 中的缓存

2.1 $cacheFactory 简介

$cacheFactory 是一个为所有Angular服务生成缓存对象的服务。在内部, $cacheFactory 会创建一个默认的缓存对象,即使我们并没有显示地创建。

要创建一个缓存对象,可以使用 $cacheFactory 通过一个ID创建一个缓存:

var cache = $cacheFactory("myCache");

这个 $cacheFactory 方法可以接受两个参数:

cacheId (字符串):这个 cacheId 就是创建缓存时的ID名称。可以通过 get() 方法使用缓存名称来引用它。

capacity :这个容量描述了在任何给定时间要使用缓存存储并保存的缓存键值对的最大数量。

 

2.2 缓存对象

缓存对象自身有下列这些方法可以用来与缓存交互。
info() : info() 方法返回缓存对象的ID、尺寸和选项。
put() : put() 方法允许我们把任意JavaScript对象值形式的键(字符串)放进缓存中。cache.put("hello","world");
put() 方法会返回我们放入缓存中的值。
get() : get() 方法让我们能够访问一个键对应的缓存值。如果找到了这个键,它会返回它的值;如果没有找到,它会返回 undefined 。cache.get("hello");
remove() : remove() 函数用于在找到一个键值对的情况下从缓存中移除它。如果没有找到,它就会返回 undefined 。cache.remove("hello");
removeAll() : removeAll() 函数用于重置缓存,同时移除所有已缓存的值。
destory() : destory() 方法用于从 $cacheFactory 缓存注册表中移除指定缓存的所有引用。

 

三、$http 中的缓存

Angular的 $http 服务创建了一个带有ID为 $http 的缓存。要让 $http 请求使用默认的缓存对象很简单: $http() 方法允许我们给它传递一个 cache 参数。

 3.1 默认的 $http 缓存
当数据不会经常改变时,默认的 $http 缓存就特别有用了。可以像这样设置它:

$http({
    method: "GET",
    url: "/api/users.json",
    cache: true  //设置为true只是用来使用$http默认的缓存机制
});

现在,通过 $http 到URL /api/user.json 的每个请求将会存储到默认的 $http 缓存中。这个$http 缓存中的请求键就是完整的URL路径。

 

如果需要,也可以操作这个默认的 $http 缓存(比如,如果我们发起的另外一个没有缓存的请求提醒我们发生了增量变化,我们就可以在默认的 $http 请求中清除这个请求)。

为了引用 $http 的默认请求,只需通过 $cacheFactory() 使用ID来获取到该缓存:
var cache = $cacheFactory("$http");
对于所掌控的缓存,我们可以在需要时进行所有的正常操作,比如检索已缓存的响应,从缓存中清除条目,或者消除所有缓存的引用。
// 获取上一次请求的缓存 var usersCache = cache.get("http://example.com/api.users.json"); // 删除上一次请求的缓存入口 cache.remove("http://example.com/api.users.json"); // 重新开始并移除全部缓存 cache.removeAll();
        var cache = $cacheFactory.get("$http");
        if(cache.get("cacheData")){
            console.log(cache.get("cacheData"));
        }else{
            helloService.play().then(
                function (data) {
                    cache.put("cacheData", data);  //往缓存中放入数据
                    console.log(data);
                }
            );
        }

 

 3.2 自定义缓存

有时候能够对缓存有更多的控制以及针对缓存的表现创建规则,这就需要创建一个新的缓存来使用 $http 请求。

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

var myCache = $cacheFactory("myCache");
$http({
  method: "GET",
  utl: "/api/users.json",
  cache: myCache
});

一个小demo:定义一个缓存服务,依赖注入到你要用的控制器中,直接使用

define([
   "angularModule"
],function(app){
    app.factory("myCache", ["$cacheFactory", function($cacheFactory){
        return $cacheFactory("myCache");  //自定义一个缓存服务
    }])
});
 
        //自定义缓存,有缓存就从缓存里取,否则就发送请求
        if(myCache.get("cacheData")){
            console.log(myCache.get("cacheData"));
        }else{
            helloService.play(myCache).then(
                function (data) {
                    myCache.put("cacheData", data);
                    console.log(data);
                }
            );
        }
            cache:只是为了可以使用默认$http的缓存机制
            play : function (myCache) {
                return httpRequestService.request({
                    method : "get",
                    url : "http://localhost:8080/hello/play",
                    cache : myCache
                })
            }

 现在, $http 将会使用自定义的缓存而非默认缓存。

 

四、为 $http 设置默认缓存

每次我们想要发起一个 $http 请求时都要给它传递一个缓存实例并不方便,特别是对每个请求使用同一缓存的时候。

其实可以在模块的 .config() 方法中通过 $httpProvider 设置 $http 默认使用的缓存对象。

angular.module("myApp", []).config(function($httpProvider) {
  $httpProvider.defaults.cache = $cacheFactory("myCache", {capacity: 20});
});

这个 $http 服务不再使用它为我们创建的默认缓存;它会使用我们自定义的缓存,实际上这就是一个近期缓存最久未使用算法① (Least Recently Used,LRU)。

LRU缓存根据缓存容量只保留最新的缓存数目。也就是说,我们的缓存容量为20,因此会缓存前20个请求,但是进入第21个请求时,最近最少使用的请求条目就会从缓存中被删除。这个缓存自身会负责具体哪些要维护,哪些要移除。

当前文章:http://hnhdqp.com/3bj9o0b68p.html

发布时间:2019-02-24 00:53:32

传奇手游 哪个棋牌游戏20能兑换 上游棋牌港式五张 六人血战麻将玩法 十三张棋牌作弊 亲朋棋牌游戏中心下载 网络棋牌频道主持人 麻将房卡怎么买

编辑:成王

相关新闻

我市召开事业单位职代会暨民主管理推进会

2019-02-24 02:26:49

梧州咕勇科技有限公司

《玩命喜剧》概念海报 沈腾手捧“圣经”身份成谜

2019-02-24 03:00:49

青海寺敝倏商贸有限公司

古川雄辉赴华拍戏 与张辛苑接吻频NG

2019-02-24 01:40:43

上海牌朗集团

热门推荐

  • 1799元,魅蓝 E3 6+64GB京东正式开售
  • 显卡压力很大:《地铁:逃离》将采用实时光线追踪技术
  • 金寨县四措并举发展乡村旅游
  • 美国中密歇根大学发生枪击事件致2人死亡 枪手仍在逃
  • 中国5G第三阶段技术规范发布,OPPO深入参与
  • js上传图片
  • 英国国民品牌,龙狮戴尔男女轻薄立领短款羽绒服169元
  • 支付宝推信用就医:看病不用排队
  • Facebook:至少12%帐号是虚假或重复帐号
  • 茂县新磨村四周村民:垮塌历程几秒钟反映不外来
  • 河北新闻网版权所有 本站点信息未经允许不得复制或镜像 法律顾问:掌玩互娱官网 亲朋游戏官网首页中心
  • 泰无聊app copyright ? 2000 - 2016
  • 新闻热线:0311-67563366 广告热线:0311-67562966 新闻投诉:0311-67562994
  • 冀ICP备 09047539号-1 | 互联网新闻信息服务许可证编号:1312006002
  • 广播电视节目制作经营许可证(冀)字第101号|信息网络传播视听节目许可证0311618号
  • 德州扑克规则 王者与荣耀在哪里下载 逍遥兵王洛天最新更新9 四川亲朋棋牌官网首充