JavaScript在浏览器中如何加载
JavaScript在浏览器中的加载方法:1、解析web页面;2、通过link引入外部 css;3、通过script引入外部js;4、创建线程异步加载;5、继续解析文档;6、按照顺序执行defer的脚本;7、转化为事件驱动阶段等等。
本文操作环境:Windows7系统、Dell G3电脑、javascript1.8.5版。
今天将和大家分享有关JavaScript中加载的过程,有一定的参考价值,希望对大家有所帮助
JavaScript加载是从他开始那一刻一直到浏览器按照事情顺序完成所有的事为止,大概步骤可以分为创建 document 对象==>文档解析完成==>文档加载完并执行完,接下来在文章中将和大家详细介绍。
加载过程
(1)解析 web 页面也就是解析 HTML 元素和他们的文本内容,将对像和文本添加到文档中,document处于加载中
文档解析
(2)通过link引入 外部 css,创建线程,进行异步加载。
(3)通过 script 引入外部 js,并且没有设置 async、defer,浏览器同步加载,并阻塞等
(4)等待js加载后为其设置有async、defer,浏览器创建线程异步加载,其中 async在脚本加载完成后立即执行(注意 :异步加载应禁止使用 document.write())
(5)遇到 img 等带有 src的属性,应该先正常解析 dom 结构,然后浏览器异步加载 src,并继续解析文档,如果 看到标签就直接生产 dom 树,不需要等着 img 加载完 scr。
(6)文档解析完成后,所有设置有 defer 的脚本会按照顺序执行。(注意与 async 的不同,但同样禁止使用 document.write());
(7)document 对象触发 DOMContentLoaded 事件,这也标志着程序执行从同步脚本执行阶段,转化为事件驱动阶段。
(8)当所有 async 的脚本加载完成并执行后、img 等加载完成后(页面所有的都执行加载完之后),document.readyState = 'complete',window 对象触发 load 事件。
(9)从此,以异步响应方式处理用户输入、网络事件等
注意
我们在写程序的时候最好将script标签写在下面,虽然写在上面不仅可以操作div,又可以在dom解析完就立刻处理,这样使效率更高,但是最好还是写在最下面
<div style="width:100px;height:100px;background: pink;"> <script> var div=document.getElementsByTagName("div")[0] div.onclick=function(){ this.style.background="hotpink"; } </script>
总结:以上就是本文章的全部内容了,希望通过这篇文章让大家对JavaScript的加载有一定的了解。
以上就是JavaScript在浏览器中如何加载的详细内容,更多请关注其它相关文章!
上一篇: php调用mysql步骤
下一篇: JavaScript专题之三:防抖
推荐阅读
-
php获取jquery ajax传递的值,在php中如何把这个值设置为全局变量
-
PHP在foreach中引入function的效率如何?
-
在JavaScript中如何解决用execCommand(_javascript技巧
-
在开发的过程中,如何最快的学好英文读更多的国外文档。看四级六级还是什么词汇还是自己边看边收集?
-
说说在 Spring Boot 中如何配置数据源
-
在Laravel5.2中,如何直接使用Auth包里的方法进行直接注册用户呢?
-
在JavaScript中实现类的方式探讨_javascript技巧
-
如何使用XSSaminer工具在PHP源码中挖掘XSS漏洞
-
事件模型在各浏览器中存在差异_javascript技巧
-
设计模式中的facade外观模式在JavaScript开发中的运用(高级篇)