我是靠谱客的博主 包容柠檬,最近开发中收集的这篇文章主要介绍牛客网面试题库刷题,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

30. 如何实现可过期的localStorage

  1. localStorage只能用于长久保存网站的数据,保存的数据没有过期时间,直到手动删除。所以要实现过期的localStorage缓存的重点是:如何清理过期的缓存

  2. 方法:

    1. 惰性删除
      • 定义:指某个键值过期后,该键值不会被马上删除,而是的能到下次被使用的时候,才会被检查到过期,此时才能删除
      • 实现方法:存储的数据类型是个对象,包含两个key,一个是存储的value值,一个是当前时间。获取数据时,拿到存储的时间和当前时间做比较,如果超过过期时间就清除cookie
    2. 定时删除
      • 定义:指每隔一段时间执行依次删除操作,并通过限制删除操作执行的次数和频率,来减少删除操作对CPU的长期占用,另一方面此方法有效的减少了因惰性删除带来的localStorage空间的浪费
      • 实现过程:获取所有设置过期时间的key判断是否过期,过期就存储到数组中,遍历数组,每隔1s(固定时间)删除5个(固定个数),直到把数组中的key从localStorage中全部删除
    • LocalStorage清空应用场景:token存储在LocalStorage中,要清空

31. 浏览器如何渲染页面

  1. html被html解析器解析成DOM树

  2. CSS被CSS解析器解析成CSS规则树

  3. 浏览器将CSS规则树附着在DOM树上,并结合两者生成渲染树Render Tree

  4. 生成布局(flow),浏览器通过解析计算出每一个渲染树节点的位置和大小,在屏幕上画出渲染树的所有结点

  5. 将布局绘制(paint)在屏幕上,显示出整个页面

32. axios的拦截器原理及应用

  1. 应用场景:请求拦截器用于在接口请求之前做处理,比如为每个请求带上相应的参数(token、时间戳等);响应拦截器用于在接口返回之后做处理,比如对返回的状态进行判断(token是否过期)
  2. 原理:创建一个chn数组,数组中存有拦截器相应方法以及dispatchRequest,相对于dispatchRequest,请求拦截器的方法在前,响应拦截器的方法在后,把请求拦截器和响应拦截器forEach将他们分别unshift,push到chn数组中,为了保证他们的执行顺序,需要使用promise,以出队列的方式对chn数组中的方法挨个执行

最后

以上就是包容柠檬为你收集整理的牛客网面试题库刷题的全部内容,希望文章能够帮你解决牛客网面试题库刷题所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(50)

评论列表共有 0 条评论

立即
投稿
返回
顶部