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在浏览器中如何加载的详细内容,更多请关注其它相关文章!
上一篇: JavaScript事件是指什么
下一篇: javascript代码有几种使用方式
推荐阅读
-
在console中看到AJAX请求要用1.5S左右,如何去测试PHP代码中是哪一段比较费时间,用什么工具可以看到整个运行过程吗?
-
在使用angular4中出现JavaScript内存溢出问题(详细教程)
-
php中运用GD2库创建图形在浏览器中显示不出来
-
在Webpack中如何加载SVG
-
怎么在PHP中设置session永久有效,除非关闭浏览器
-
cakephp的App类是在什么时候加载的?小弟我如何找了半天也没有找到…
-
注解在Java中是如何工作的?
-
IE6/7中getAttribute获取href/src 属性(相对路径0值与其它浏览器不同_javascript技巧
-
php页面为啥不能像html一样直接在浏览器中查看呢,该如何解决
-
在HTML中如何实现链接选择?详见内容_html/css_WEB-ITnose