博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
js 网页运行原理
阅读量:5350 次
发布时间:2019-06-15

本文共 612 字,大约阅读时间需要 2 分钟。

当我们打开一个网页的时候,浏览器会首先创建一个窗口,这个窗口就是我所知道的window对象,也就是整个Javascript运行所依附的全局变量。

为了加载网页文档,当前窗口又需要创建一个Document对象,然后把打开的网页加载到Document下。网页就是在这个加载的过程中,一边加载一边呈现,所以我们当网速非常慢的时候可以看到,网页从上到下一点点地打开。

当我们用<script src=’’>引入其他的JS时,浏览器可能会派遣其他线程去下载,但是浏览器也会等待需要的JS文件下载完成,然后再有主线程按顺序加载JS其他的代码。在Web标准下,限制对同一个域名最多只允许使用两个线程可以同时加载内容,当然可以通过修改注册表来强迫Windows模块突破这一限制。

同时,许多网站会把js放到不同的子域名下,这样就可以使浏览器开启更多的线程并行加载这些资源,从而更加充分地利用网络带宽。

当整个页面都加载结束后,浏览器开始触发window对象或者body对象的onload事件,其实window对象和body对象的load事件是相通的,这也就意味着两个事件只能有一个起作用。当然,在常规意义上,也没有同时设置两者的需求。

到此结束,然后JS引擎就暂停工作,等待着下一次的触发。因此我们可以说:“JS总是被动触发的”。

转载于:https://www.cnblogs.com/qiaoxinming/p/8390654.html

你可能感兴趣的文章
四层和七层负载均衡的区别
查看>>
强烈推荐!!!Fiddler抓取https设置详解(图文)
查看>>
solr6集群搭建步骤
查看>>
线段树例题及做题误区
查看>>
养老金靠谱吗?--转自天涯,有兴趣的了解下
查看>>
php学习日志(5)-解决Windows Live Writer错误:WindowsLive.Writer.CoreServices.HttpRequestHelper的类型初始值设定发生异常...
查看>>
HOUR 14 Calling Advanced Functions
查看>>
hadoop集群搭建实践
查看>>
vue-cli 3.0 学习笔记
查看>>
军哥lnmp环境安装phalcon
查看>>
高效的从千万数据取随机行
查看>>
小组项目
查看>>
drupal 8——打补丁(patch)
查看>>
9.26表单验证和事件、正则表达式
查看>>
acm课程练习2--1003
查看>>
织梦dede:arclist输出取消换行符
查看>>
Silverlight 4以下版本模拟鼠标双击事件
查看>>
[PA 2014]Bohater
查看>>
HDU 6017 Girls Love 233(多态继承DP)
查看>>
HDU 1260 Tickets
查看>>