关于js的code缓存

JavaScript的预编译与执行

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

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

代码缓存

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

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

  • 是否是对全部js文件执行;
  • 是否生成了编译结果;
  • 是否使用了编译结果;
  • 源文件更新后使用新源文件、并且同时生成新的cache(codecache 日期不匹配失效);
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
引用\[1\]:清理网站缓存的几种方法中提到了一种方法是通过meta标签来清除缓存。可以在网页的头部添加以下meta标签来禁止缓存: <META HTTP-EQUIV="pragma" CONTENT="no-cache"> <META HTTP-EQUIV="Cache-Control" CONTENT="no-cache, must-revalidate"> <META HTTP-EQUIV="expires" CONTENT="0"> 这样设置后,浏览器会在每次加载页面时都重新请求服务器获取最新的内容,从而清除缓存。\[1\] 引用\[3\]:另外一种方法是通过在URL中添加随机数或者版本号来清除缓存。可以在图片的路径或者js、css文件的引用中添加一个随机数或者版本号,每次更新后更改随机数或者版本号,这样浏览器会认为是一个新的文件,从而重新下载最新的文件。例如: $("#pic_code").attr('src','/static/img/verify_code.png'+'?temp=' + Math.random()); <script type="text/javascript" src="core.js?v=20140829"></script> 这样做可以强制浏览器重新加载最新的文件,达到清除缓存的效果。\[3\] 所以,通过在网页头部添加meta标签或者在URL中添加随机数或者版本号,可以使用JavaScript清除页面缓存。 #### 引用[.reference_title] - *1* [js清除浏览器缓存的几种方法](https://blog.csdn.net/txun123/article/details/124309257)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* *3* [js清除浏览器缓存](https://blog.csdn.net/weixin_40480741/article/details/84024736)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值