各浏览器呈现引擎的线程问题
2014-05-07 00:00
1016 查看
呈现引擎采用了单线程。几乎所有操作(除了网络操作)都是在单线程中进行的。记住这个特性可以帮助我们理解浏览器的一些工作现象。
在 Firefox 和 Safari 中,该线程就是浏览器的主线程。而在 Chrome 浏览器中,该线程是标签进程的主线程。就是说,除了chrome每个标签页是独立的呈现引擎,其他浏览器主引擎都是呈现引擎。这就是为什么 Chrome 速度那么快,而又那么吃内存的其中一个原因。
网络操作可由多个并行线程执行。并行连接数是有限的(通常为 2 至 6 个,以 Firefox 3 为例是 6 个)。
在 Firefox 和 Safari 中,该线程就是浏览器的主线程。而在 Chrome 浏览器中,该线程是标签进程的主线程。就是说,除了chrome每个标签页是独立的呈现引擎,其他浏览器主引擎都是呈现引擎。这就是为什么 Chrome 速度那么快,而又那么吃内存的其中一个原因。
网络操作可由多个并行线程执行。并行连接数是有限的(通常为 2 至 6 个,以 Firefox 3 为例是 6 个)。
事件循环
浏览器的主线程是事件循环。它是一个无限循环,永远处于接受处理状态,并等待事件(如布局和绘制事件)发生,并进行处理。这是 Firefox 中关于主事件循环的代码:while (!mExiting) NS_ProcessNextEvent(thread);
相关文章推荐
- 问题:后台线程修改自动布局引擎
- 检测访问网页的浏览器呈现引擎、平台、Windows操作系统、移动设备和游戏系统
- 修复“资源浏览器”的浏览器栏区域呈现灰色空白问题
- 浏览器工作原理8-渲染引擎的线程
- 解决浏览器多标签非激活状态下线程暂停(JS脚本等暂停)问题
- 基于javascript代码检测访问网页的浏览器呈现引擎、平台、Windows操作系统、移动设备和游戏系统
- 复述一下浏览器呈现引擎的基本工作流
- 深入解析浏览器的幕后工作原理(二) 呈现引擎
- 【学习点滴-js】js 检测浏览器,呈现引擎和平台。
- JavaScript引擎是单线程运行的,浏览器无论在什么时候都只且只有一个线程在运行JavaScript程序
- 浏览器工作原理(九):动态变化和渲染引擎的线程
- 问题:后台线程修改自动布局引擎
- js学习小结(七)2014.5.5(识别呈现引擎、浏览器版本和操作平台)
- 浏览器识别(包括呈现引擎,浏览器版本,操作系统,移动设备)
- 基于javascript代码检测访问网页的浏览器呈现引擎、平台、Windows操作系统、移动设备和游戏系统
- 浏览器内核、JS 引擎、页面呈现原理及其优化
- js 检测浏览器,呈现引擎和平台
- 深入研究Servlet线程安全性问题
- 解决IOS微信内置浏览器返回后不执行js脚本的问题
- 黑马程序员—JAVA线程间通讯问题