源码网商城,靠谱的源码在线交易网站 我的订单 购物车 帮助

源码网商城

游览器中javascript的执行过程(图文)

  • 时间:2021-02-27 11:24 编辑: 来源: 阅读:
  • 扫一扫,手机访问
摘要:游览器中javascript的执行过程(图文)
1. 大多数游览器的组件构成如图      [img]http://files.jb51.net/file_images/article/201205/201205201910082.png[/img] 在最底层的三个组件分别是网络,UI后端和js解释器。作用如下: (1)网络- 用来完成网络调用,例如http请求,它具有平台无关的接口,可以在不同平台上工作 (2)UI 后端- 用来绘制类似组合选择框及对话框等基本组件,具有不特定于某个平台的通用接口,底层使用操作系统的用户接口 (3)JS解释器- 用来解释执行JS代码 ps:上图和知识点主要来自《HOW BROWSERS WORK: BEHIND THE SCENES OF MODERN WEB BROWSERS》 想深入了解的同学可以重点看下。 2. 大多数游览器(比如chrome)让一个单线程共用于执行javascrip和更新用户界面。这个线程通常被称为“游览器UI线程”, 每个时刻只能执行其中一种操作,这意味着当Javascript代码正在执行时用户界面无法响应输入,反之亦然。这样做是因为javascript代码的作用就是操作DOM更新用户界面,用同一个线程来做负责这两件事情可以更高效 3. 游览器UI线程的工作基于一个简单的队列系统,任务会被保存到队列中直到进程空闲。一旦空闲,队列中的下一个任务就被重新提取出来并运行。这些任务要么是运行javascript代码,要么执行UI更新,包括重绘和重排。 4. 重点再强调下,javascript是单线程运行,千万别被setTimeout()和setInterVal()这种函数迷惑而误以为它是多线程。 ok,基础点讲解完毕,让我们进入正题,来讲解在游览器中javascript的执行过程。 一、原理 一般而言,<script>标签每次出现都会霸道地让页面等待脚本的解析和执行,无论当前的Javascript是内嵌的还是包含了外链文件,页面的下载和渲染都必须停下来等待脚本执行完成。这在页面的生存周期中是必要的,因为脚本执行过程中可能修改页面内容,一个典型的例子就是在页面中使用document.write()。 当javascript代码是内嵌在html里面时,这点还是比较容易理解,但当javascript是外链文件时稍微有点负载,因为存在一个加载过程,而且游览器加载好这个js文件之后往往还对其缓存。 首先,我们用以下这个例子来说明下缓存问题
[url=http://www.1sucai.cn/books/36680.html]《高性能Javascript》[/url] [url=http://www.html5rocks.com/en/tutorials/internals/howbrowserswork/]HOW BROWSERS WORK: BEHIND THE SCENES OF MODERN WEB BROWSERS[/url] [url=http://www.ha97.com/2908.html]Google Chrome源码剖析【一】:多线程模型[/url] [url=http://www.1sucai.cn/article/30324.htm]javascript异步加载详解[/url]
  • 全部评论(0)
联系客服
客服电话:
400-000-3129
微信版

扫一扫进微信版
返回顶部