缓存

缓存的作用:

就是将一些常用的数据存储起来,以提供使用,提高性能。

网站静态页面缓存机制:

将网页静态化存储在服务器端,

利用缓存解决递归斐波那契数列性能问题:

   function   createFib(){
        var cache = [];
        function fib(n){
          //从cache中获取
          if(cache[n] !== undefined){
              //如果缓存中有,直接返回
              return cache[n]
          }
          //如果缓存中没有,则重新计算
          if(n <=2){
              cache[n]=1;
              return 1;
          }
          var temp = fib(n-1)+ fib(n-2);
          //放入缓存
          cache[n]=temp;
          return temp;
        }
        return fib;
      }
      var fib = createFib();
        console.log(fib(6));

封装创建缓存的方法:

function createCache(){
            //cache对象中以键值对的形式存储我们的缓存数据
            var cache = {};
            //index数组中该存储键,这个键是有顺序,可以方便我们做超出容量的处理
            var index = [];
            return function (key, value) {
                //如果传了值,就说名是设置值
                if(value !== undefined){
                    //将数据存入cache对象,做缓存
                    cache[key] = value;
                    //将键存入index数组中,以和cache中的数据进行对应
                    index.push(key);

                    //判断缓存中的数据数量是不是超出了限制
                    if(index.length >= 50){
                        //如果超出了限制
                        //删除掉最早存储缓存的数据
                        //最早存入缓存的数据的键是在index数组的第一位
                        //使用数组的shift方法可以获取并删除掉数组的第一个元素
                        var tempKey = index.shift();
                        //获取到最早加入缓存的这个数据的键,可以使用它将数据从缓存各种删除
                        delete cache[tempKey];
                    }
                }
                //如果没有传值,只穿了键,那就是获取值
//                else{
//                    return cache[key];
//                }
                return cache[key];
            }
        }

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值