首页 > 代码库 > 缓存容器

缓存容器

  

 1  function createCache(){
 2             //cache对象中以键值对的形式存储我们的缓存数据
 3             var cache = {};
 4             //index数组中该存储键,这个键是有顺序,可以方便我们做超出容量的处理
 5             var index = [];
 6             return function (key, value) {
 7                 //如果传了值,就说名是设置值
 8                 if(value !== undefined){
 9                     //将数据存入cache对象,做缓存
10                     cache[key] = value;
11                     //将键存入index数组中,以和cache中的数据进行对应
12                     index.push(key);
13 
14                     //判断缓存中的数据数量是不是超出了限制
15                     if(index.length >= 50){
16                         //如果超出了限制
17                         //删除掉最早存储缓存的数据
18                         //最早存入缓存的数据的键是在index数组的第一位
19                         //使用数组的shift方法可以获取并删除掉数组的第一个元素
20                         var tempKey = index.shift();
21                         //获取到最早加入缓存的这个数据的键,可以使用它将数据从缓存各种删除
22                         delete cache[tempKey];
23                     }
24                 }
25                 //如果没有传值,只穿了键,那就是获取值
26 //                else{
27 //                    return cache[key];
28 //                }
29                 return cache[key];
30             }
31         }

 jQuery的缓存容器

 1  function createCache() {
 2             var keys = [];
 3             function cache( key, value ) {
 4                 // 使用(key + " ") 是为了避免和原生(本地)的原型中的属性冲突
 5                 if ( keys.push( key + " " ) > 3 ) {
 6                     // 只保留最新存入的数据
 7                     delete cache[ keys.shift() ];
 8                 }
 9                 // 1 给 cache 赋值
10                 // 2 把值返回
11                 return (cache[ key + " " ] = value);
12             }
13             return cache;
14         }

 

缓存容器