关于js的code缓存

JavaScript的预编译与执行

是一种描述型脚本语言,是由浏览器进行动态地解析与执行,不同于Java或C等编译性语言,不需要提前进行编译生成中间结果。事实上,引擎执行js:语法分析、预编译期(预处理)与执行期。

  • 就是引擎检查你的代码有没有什么低级的语法错误;
  • 预编译期JS会对本代码块中的所有声明的变量和函数进行处理(类似与C语言的编译)
    • 此时处理函数的只是声明式函数(例如:function p(x){console.log(x)})
    • 全局变量声明,变量也只是进行了声明但未进行初始化以及赋值。
    • 匿名函数不参与预编译,只有在解释执行阶段才会进行变量初始化。
  • 执行代码
  • JS引擎是按照代码块来进行预处理和执行的,也就是说预处理的只是执行到的代码块的声明函数和变量,这也是边编译边处理的道理。

代码缓存

为了加快某个js文件的执行速度可以将该js第一次的编译结果保存在文件中。在之后的运行中直接使用编译结果。该技巧可以有效提高js文件依赖多的应用的响应时间;

在使用这种技巧时,需要注意:

  • 是否是对全部js文件执行;
  • 是否生成了编译结果;
  • 是否使用了编译结果;
  • 源文件更新后使用新源文件、并且同时生成新的cache(codecache 日期不匹配失效);
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值