• AngularJS中的缓存


    欢迎大家指导与讨论 : )

      缓存篇

      一个缓存就是一个组件,它可以透明地储存数据,以便以后可以更快地服务于请求。多次重复地获取资源可能会导致数据重复,消耗时间。因此缓存适用于变化性不大的一些数据,缓存能够服务的请求越多,整体系统性能就能提升越多。

      $cacheFactory与缓存对象

      $cacheFactory是一个为Angular服务生产缓存对象的服务。要创建一个缓存对象,可以使用$cacheFactory通过一个ID和capacity。其中,ID是一个缓存对象的名称,capacity则是描述缓存键值对的最大数量。举个生动的例子,$cacheFactory就是包租婆,她有一栋楼,里面有大大小小的房子可以出租,只要你给够钱,包租婆就会把房子租给你(获得缓存对象),这个房子包括了它的房号(ID)和房间的大小(capacity-容量)。

    var myCache = $cacheFactory('myCache');

     

      其中,缓存对象拥有以下几种方法

      1. myCache.info() 返回缓存对象的ID,尺寸和选项

      2. myCache.put() 新值键值对并放入缓存对象中 myCache.put("name", "Ben") 

      3. myCache.get() 返回对应的缓存值,若没有找到则返回undefined myCache.get("name") 

      4. myCache.remove() 把键值对从对应缓存对象中移除 myCache.remove("name") 

      5. myCache.remvoeAll() 清空该缓存对象

      $http中的缓存

      $http()方法允许我们传递一个cache参数。当数据不会经常改变的时候,默认的$http缓存会特别有用。其中,默认的$http缓存对象是 var cache = $cacheFactory('$http'); 可以这样设置它

    $http({
         method: 'GET',
         url: 'api/user.json',
         cache: true
    })

      其中,缓存的键值为url, var userCache = cache.get('api/user.json') 

      自定义缓存

      通过自定义的缓存来让$http发起请求也很简单,只需把cache值设为对应缓存对象名称即可

    $http({
         method: 'GET',
         url: 'api/user.json',
         cache: myCache
    })

     

      或者通过config配置来设置每个$http请求的缓存对象,而不必像上面的例子中,往每一个$http请求中加入配置

    app.config(function($httpProvider){
        $httpProvider.defaults.cache = $cacheFactory('myCache',{capacity: 20})

      其中,capacity会使用"近期缓存最久未使用算法",就是说,加如缓存容量为20,现在已经缓存了缓存20个,当第21个想要被缓存的时候,最久最小未被使用的缓存键值对会被清除,以便腾出空间容纳第21个缓存。

     

     

     

     

        

     

      资料参考

      《AngularJS权威指南》P381

      

  • 相关阅读:
    jsp-servlet(2)响应HTML文档-书籍管理系统
    jsp-servlet(1)环境搭建(Tomcat和myeclipse)和基本概念
    MySQL(2)数据库 表的查询操作
    MySQL(1) 基本操作(MySQL的启动,表的创建,查询表的结构和表的字段的修改)
    Java 构造器Constructor 继承
    数据结构:链表的操作
    C++指针易错点梳理
    C++操作符重载
    无重复字符的最长子串-LeetCode-第3题-C++
    计算几何模板存储
  • 原文地址:https://www.cnblogs.com/BestMePeng/p/AngularJS_Cache.html
Copyright © 2020-2023  润新知