大家好,今天小编关注到一个比较有意思的话题,就是关于javascript脚本缓存的问题,于是小编就整理了2个相关介绍javascript脚本缓存的解答,让我们一起看看吧。
怎样解决浏览器js缓存的问题?
要解决浏览器JS缓存的问题,可以通过在引入JS文件的链接后加上一个版本号或者时间戳来强制浏览器重新请求最新的JS文件,例如:script.js?v=1.0。
另外,可以使用meta标签设置no-cache来禁止浏览器缓存JS文件,或者在服务器端配置JS文件的缓存时间。
另外,可以使用http头文件中的Cache-control和Expires来控制缓存。通过这些方式,可以有效解决浏览器JS缓存的问题。
前端编译器babel的缓存机制是怎么做的?
<span style="font-weight: bold;">babel简介
babel是一个js的编译器,我们平常使用的react、vue等框架都是通过它才能编译成浏览器可以执行的代码,个人感觉它是前端这座大厦最最底层并且是最最核心的部分。如果没有它,前端肯定会退回到刀耕火种时代。
既然是编译器,所以它肯定会去操作很多的文件,在babel/core中,它读取最多的是它的配置包括babelrc、pkgjson、插件、预设等文件,所以对操作文件的结果做缓存必不可少!
在js中做缓存容器常用的无非就是对象和数组,babel***用的是es6提供的map,其实就是一个对象,只不过它的key比较随意(不限于字符串)。
好了,现在既然有了缓存容器(map),那么key是什么呢?用于标记一个文件,一般可以选择用文件的路径和文件名+文件内容的md5值,babel用的是前者。
处理文件的过程可以定义一个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