位置: 编程技术 - 正文

学习javascript文件加载优化(学javascript的书)

编辑:rootadmin

推荐整理分享学习javascript文件加载优化(学javascript的书),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:javascript学到什么程度,学javascript的书,javascript怎么学好,javascript学了有什么用,学javascript的书,javascript怎么学好,javascript怎么学好,javascript要学到什么程度,内容如对您有帮助,希望把文章链接给更多的朋友!

在js引擎部分,我们可以了解到,当渲染引擎解析到script标签时,会将控制权给JS引擎,如果script加载的是外部资源,则需要等待下载完后才能执行。 所以,在这里,我们可以对其进行很多优化工作。

放置在BODY底部

为了让渲染引擎能够及早的将DOM树给渲染出来,我们需要将script放在body的底部,让页面尽早脱离白屏的现象,即会提早触发DOMContentLoaded事件. 但是由于在IOS Safari, Android browser以及IOS webview里面即使你把js脚本放到body尾部,结果还是一样, 所以这里需要另外的操作来对js文件加载进行优化.

DEFER加载

这是HTML4中定义的一个script属性,它用来表示的是,当渲染引擎遇到script的时候,如果script引用的是外部资源,则会暂时挂起,并进行加载。 渲染引擎继续解析下面的HTML文档,解析完时,则会执行script里面的脚本。

他的支持度是<=IE9的. 并且,他的执行顺序,是严格依赖的,即:

当页面解析完后,他便会开始按照顺序执行 outside1 和 outside2文件。如果你在IE9以下使用defer的话,可能会遇到 它们两个不是顺序执行的,这里需要一个hack进行处理,即在两个中间加上一个空的script标签

ASYNC加载

学习javascript文件加载优化(学javascript的书)

async是H5新定义的一个script 属性。 他是另外一种js的加载模式。

渲染引擎解析文件,如果遇到script(with async) 继续解析剩下的文件,同时并行加载script的外部资源 当script加载完成之后,则浏览器暂停解析文档,将权限交给JS引擎,指定加载的脚本。 执行完后,则恢复浏览器解析脚本

可以看出async也可以解决 阻塞加载 这个问题。不过,async执行的时候是异步执行,造成的是,执行文件的顺序不一致。即:

这时,谁先加载完,就先执行谁。所以,一般依赖文件就不应该使用async而应该使用defer.defer的兼容性比较差,为IE9+,不过一般是在移动端使用,也就不存在这个problem了。

脚本异步

脚本异步是一些异步加载库(比如require)使用的基本加载原理. 直接上代码:

这时候,可以异步加载文件,不会造成阻塞的效果.但是,这样加载的js文件是无序的,无法正常加载依赖文件。这时候,我们需要对上述函数进行优化.

但是,使用脚本一步加载的话,需要等待css文件加载完后,才开始进行加载,不能充分利用浏览器的并发加载优势。而使用静态文本加载async或者defer则不会出现这个问题。

使用脚本异步加载时,只能等待css加载完后才会加载使用静态的async加载时,css和js会并发一起加载

关于这三种如何取舍,那就主要看leader给我们目标是什么,是兼容IE8,9还是手机端,还是桌面浏览器,或者两两组合。 但是对于单独使用某一个技能的场景,使用时需要注意一些tips。

1、js文件放置位置应该放置到body末尾2、如果使用async的话,最后加上defer以求向下兼容

通常,我们使用的加载都是defer加载,因为很强的依赖关系。

标签: 学javascript的书

本文链接地址:https://www.jiuchutong.com/biancheng/380387.html 转载请保留说明!

上一篇:复杂的javascript窗口分帧解析(复杂的字)

下一篇:基于JavaScript实现弹出框效果(javascript例题)

  • 中级财务管理与注会财务管理
  • 有形资产租赁服务的税率
  • 税务局代个人开发票
  • 工资怎么扣费
  • 以经营房产投资合营收固定收益如何开发票?
  • 过路费定额发票还能入账吗
  • 外出经营涉税事项报告
  • 城建税计提与缴纳分录
  • 小微企业应纳税所得额超过300万怎么办
  • 不是小微企业的小规模纳税人的税收优惠
  • 车船税每年都要交吗标准多少
  • 免抵退税的计算数据
  • 零售行业的销售员有加班费吗
  • 商贸公司可以用加工厂的商标委托加工生产吗
  • 外购产品对外捐赠的会计处理
  • 企业股权转让收入申报表填哪里
  • 电商刷单的成本如何处理?
  • 投资款多投了怎么办
  • 增值税专用发票和普通发票的区别
  • 总分机构如何做账
  • 移动电子发票怎么发送到邮箱
  • 成品油发票应该怎么冲红?
  • 在王者荣耀中怎么找个妹子
  • 如何查看本机的ip 网关 和dns配置
  • 收到的进项发票要在多久前认证
  • 销售返利如何做账
  • 集团公司交税怎么交?
  • cpqeadm.exe是什么进程 可以关闭吗 cpqeadm进程查询
  • thinkphp import
  • php程序开发范例宝典光盘
  • 借入资金一般采用借入()进行
  • php curd
  • 碧峰峡熊猫基地门票
  • phpinfo页面
  • wordpress优化seo
  • 纽格尔官网
  • 因质量问题收取停工通知
  • 豁免债权如何做账
  • 比斯蒂荒野上的“外星孵化场”,新墨西哥州 (© Ian Shive/Tandem Stills + Motion)
  • 支付宝提现到对公账户怎么做账
  • 无形资产的摊销应计入什么科目
  • openai.error.AuthenticationError: No API key provided.
  • webpack devserver contentbase
  • ChatGPT中国电话不能注册
  • pytorch csdn
  • fstrim命令
  • javascript数据类型分为哪两类
  • 存货的期末计价属于会计政策吗
  • 工程公司收到工程款会计分录
  • 主营业务成本和生产成本的区别
  • 资产负债表中的货币资金怎么算
  • PostgreSQL教程(一):数据表详解
  • vue前端页面设计
  • 原材料入库单价20000出库单价800000
  • 财务软件怎么做红冲分录
  • 企业每月应交哪几种税费
  • 进料加工出口退税核销最新流程
  • 资产负债表与利润表的关联性可在存货与销售成本
  • 法人和税务可以是一个人吗
  • 个人新冠肺炎确诊,要和单位领导说吗
  • 暂估主营业务成本怎么冲销
  • 已抵扣发票红冲做进项税转出
  • 融资租赁业务利润怎么算
  • 收到预付卡的发票是否可以报销呢?
  • 进项税额属于什么会计科目
  • 未认证的进项税额转出会计分录
  • 银行开户存款流程
  • sqlserver 查询语句
  • Windows10 64位安装MySQL5.6.35的图文教程
  • phpstudy中phpmyadmin无法访问
  • 管理需要
  • gpt分区方法
  • win7系统怎么设置屏保图片
  • opengl的坐标系
  • perl use vars pragma使用技巧
  • JavaScript 浏览器对象
  • 用于登录
  • 一起学ap
  • nodejs10支持es6吗
  • unity3d颜色
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设