北京沣登科技发展公司

j***ascript脚本缓存,j***ascript 缓存

大家好,今天小编关注到一个比较意思的话题,就是关于javascript脚本缓存问题,于是小编就整理了2个相关介绍javascript脚本缓存的解答,让我们一起看看吧。

  1. 怎样解决浏览器js缓存的问题?
  2. 前端编译器babel的缓存机制是怎么做的?

怎样解决浏览器js缓存的问题?

要解决浏览器JS缓存的问题,可以通过引入JS文件链接后加上一版本或者时间戳来强制浏览器重新请求最新的JS文件,例如:script.js?v=1.0。

另外,可以使用meta标签设置no-cache来禁止浏览器缓存JS文件,或者在服务器配置JS文件的缓存时间。

javascript脚本缓存,javascript 缓存div>
图片来源网络,侵删)

另外,可以使用http头文件中的Cache-control和Expires来控制缓存。通过这些方式,可以有效解决浏览器JS缓存的问题。

前端编译器babel的缓存机制是怎么做的?

<span style="font-weight: bold;">babel简介

babel是一个js的编译器,我们平常使用的react、vue框架都是通过它才能编译成浏览器可以执行代码,个人感觉它是前端这座大厦最最底层并且是最最核心的部分如果没有它,前端肯定会退回到刀耕火种时代。

javascript脚本缓存,javascript 缓存
(图片来源网络,侵删)

既然是编译器,所以它肯定会去操作很多的文件,在babel/core中,它读取最多的是它的配置包括babelrc、pkgjson插件、预设等文件,所以对操作文件的结果做缓存必不可少!

在js中做缓存容器常用的无非就是对象数组,babel***用的是es6提供的map,其实就是一个对象,只不过它的key比较随意(不限于字符串)。

好了,现在既然有了缓存容器(map),那么key是什么呢?用于标记一个文件,一般可以选择用文件的路径和文件名+文件内容的md5值,babel用的是前者。

javascript脚本缓存,javascript 缓存
(图片来源网络,侵删)

处理文件的过程可以定义一个handle方法,文件路径是handle的一个参数,有时仅仅一个文件路径并不能满足业务逻辑,需要传入其他的参数,所以handle拥有第二个参数。

在这里,babel对第二个参数做了一层封装,把它做成了一个有状态管理能力的对象CacheConfigurator,所以handle的第二个参数就是这个对象。

handle处理后就会得到对某个文件本次的处理结果value,现在就把value存入map中吗?sorry,并不是!

CacheConfigurator是一个拥有状态管理能力的对象,在handle处理的过程中是可以对它进行状态修改的。在得到value的值后,还需要去鉴别CacheConfigurator的状态。

到此,以上就是小编对于j***ascript脚本缓存的问题就介绍到这了,希望介绍关于j***ascript脚本缓存的2点解答对大家有用。

[免责声明]本文来源于网络,不代表本站立场,如转载内容涉及版权等问题,请联系邮箱:83115484@qq.com,我们会予以删除相关文章,保证您的权利。 转载请注明出处:http://www.fengdengtech.com/post/64136.html

分享:
扫描分享到社交APP