社区
JavaScript
帖子详情
web 浏览器内核初探
paddeydou
2010-11-19 11:02:24
Web浏览器一般使用公共 API来创建主机对象来负责将DOM对象反射进JavaScript。
问题1:DOM(BOM) 究竟存在于浏览器内核中还是JS 引擎中
问题2:DOM树的构建是由谁来构建完成的
问题3:JS引擎如何处理DOM的
...全文
154
8
打赏
收藏
web 浏览器内核初探
Web浏览器一般使用公共 API来创建主机对象来负责将DOM对象反射进JavaScript。 问题1:DOM(BOM) 究竟存在于浏览器内核中还是JS 引擎中 问题2:DOM树的构建是由谁来构建完成的 问题3:JS引擎如何处理DOM的
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
8 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
打字员
2010-11-23
打赏
举报
回复
我同意这种学习的精神,但不赞同研究好了内核能更好的优化代码这种说法。
你把内核研究的再清楚有什么用,你能改吗?你只能改自己的代码。如果你觉得程序什么地方可能用document.getElementById 比 getElementsByTagName 更好,但是下面的代码中可能因为你这里的改动而变的没有原来高效了,怎么办,下面再改,最后改来改去,是优化了还是更差了,谁说的准呢
对于JS而言,只要知道这个DOM的API有什么作用,在程序中合理使用就行了。
碧海情天-赵亮
2010-11-23
打赏
举报
回复
[Quote=引用 6 楼 cj205 的回复:]
js的引擎是没有浏览器区别的,所以DOM的解析是又浏览器内核来完成的
最后一个问题我来打个比方
我们写在HTML里面的document等对象是浏览器对js封装好的对象。
这个就像是我们写类库的时候封装好一个类,里面的实现其实还是由普通的语法和语义。只是在外面看来我们直接调用类就可以完成了~
[/Quote]
原理是这样,但只是原理,正象我上面所说的,这是表层上的认识,如果真要研究内核,就不能停留在表面原理上了。在实际实现上,不仅涉及实现方法,而且由于实现方法其实是可以有很多种的,那么各浏览器内核和JS引擎在实现上都采用了怎样的优化途径呢?这些都是需要具体详细的真正可以被称为“技术文档”的资料的。
还是请大家贡献一下这方面好的权威资料网址吧。
Mr-Jee
2010-11-23
打赏
举报
回复
js的引擎是没有浏览器区别的,所以DOM的解析是又浏览器内核来完成的
最后一个问题我来打个比方
我们写在HTML里面的document等对象是浏览器对js封装好的对象。
这个就像是我们写类库的时候封装好一个类,里面的实现其实还是由普通的语法和语义。只是在外面看来我们直接调用类就可以完成了~
碧海情天-赵亮
2010-11-23
打赏
举报
回复
没人回复问题和做更深入的解释。
我没查资料,就用自己的“感觉”抛砖引玉吧。因为感觉前两个问题比较容易回答,相对来说也不能算是重点。在后面我想修改一下问题。
问题1:DOM(BOM) 究竟存在于浏览器内核中还是JS 引擎中
这个应该是由浏览器内核完成。JS引擎只负责我们平时使用的JS中比较核心的部分。浏览器再将JS引擎的功能与DOM,BOM结合起来。比如window对象及window.location等对象都是操作浏览器部件的,这些都不属于JS引擎本身的范畴。再比如UE里也扩展了脚本功能,使用了UE的对象(UOM?呵呵),JS引擎不可能为了众多和未知的应用而把它们都纳进自己的范畴。这就是谁是谁的子集的问题。
问题2:DOM树的构建是由谁来构建完成的
当然是浏览器内核。JS引擎还是只负责它JS代码处理那一块。
问题3:JS引擎如何处理DOM的
这个就是我关心和想知道的。
事实上我想这个问题可以问得更深入些,关于DOM,BOM,无论是模型图例还是文字说明,只停留在表面关系上,都没有给出真正技术性的内部数据结构组织的说明,这和汇编方面的资料完全相反。当然,作为使用来说,基本也不需要知道那些内幕细节。但从研究认知的角度看,这的确“很闹心”。更何况有时还可能真想做做这方面的开发,那就更感缺乏资料。
我想是还不熟悉这方面的资料来源吧。所以借这里大家讨论的机会,看哪位朋友能提供些这方面好的资料网址。比如说W3C组织有没有这些方面的公开而详尽的技术文档(如上面所说,不是表层的那种关系式说明,而是讲内部实现机制和各方面具体数据组织形式的)。
十一文
2010-11-23
打赏
举报
回复
Dom是内置在浏览器中的一种应用程序接口,不是javascript的一部分也可以被vbscript和javascript调用
TinyJimmy
2010-11-23
打赏
举报
回复
DOM应该是独立模块,浏览器中可用,js引擎也同样可用,其他插件也可使用。至于如何捆绑打包,我想不太重要。
碧海情天-赵亮
2010-11-19
打赏
举报
回复
这个研究方向很好,把根弄清楚,再多的枝叶都明白了。一直想对这方面学习一下,但还没看到好的资料。
一起等看回答吧。
hch126163
2010-11-19
打赏
举报
回复
很高深的问题!还没关注过这个东东!
我自己的要求:能写js就OK!
Linux内核编程:入门篇
Linux内核一直是学习的难点:将近3000万行代码,5万多个源文件,代码庞大繁杂、代码很难看懂。《Linux内核编程》将突破以往传统的学习方式,采取更有效和科学的学习方法,多角度地对内核进行多层次分析,不局限于形式,不拘泥细节,目的只有一个:更轻松、更高效地去理解内核、学习内核。为了更好地让学员掌握内核编程技能,更好地理解内核,本课程将采用并不局限于以下学习方法进行课程的录制:降维分析,化简为繁,将复杂的系统简单化用软件工程的方法分析内核:软件分层、模块化分解、框架迭代多角度立体分析Linux内核,目的只有一个:更好地理解内核利用Linux内核中的面向对象编程思想去分析复杂的子系统、子系统交互利用多任务编程的思想去分析Linux内核本套课程预计分为20个左右的小模块,每个模块一个专题,每个专题会陆续发布。拟录制的模块包括但不限于:模块机制、内核裁剪与配置、内核编译与启动、系统调用、中断、文件系统、调度、内存管理、内核同步、设备模型、字符驱动、块驱动、定时器、input、platform设备驱动、device tree、proc、sysfs、I/O... 本课程是《Linux内核编程》的入门篇,主要给大家介绍一下Linux内核开发、Linux驱动开发的就业行情、行业生态、需要掌握哪些技能、Linux内核的学习方法、如何搭建Linux内核的学习开发环境。
浏览器内核
初探
什么是
浏览器内核
? 维基百科中对
浏览器内核
的定义:网页浏览器的排版引擎(Layout Engine或Rendering Engine)也被称为
浏览器内核
、页面渲染引擎或模板引擎,它负责取得网页的内容(HTML、XML、图像等等)、整理消息(例如加入CSS等),以及计算网页的显示方式,然后会输出至显示器或打印机。所有网页浏览器、电子邮件客户端以及其它需要根据表示性的标记语言(Presentat
Web
前端浏览器兼容
初探
Web
前端浏览器兼容
初探
前言 浏览器兼容是前端开发人员必须掌握的一个技能,但是初入前端的同学或者其他后台
web
开发同学往往容易选择忽略,而形成两个极端: 1 我最开始都是使用IE6,IE6上没问题,其它浏览器坑爹(多出现与前端后端一起搞的同学) 2 我要遵循标准,我只要ff就好,IE就是坑爹的玩意,我不必去理他 现在看来,此类的想法都是不对的,我们诚然应该追求最新的浏览...
主流浏览器发展史及其内核
初探
当我们在新时代调侃 IE 浏览器兼容性问题的时候,或多或少忘记了 IE 浏览器是第一款支持 CSS 的商用浏览器;当我们惊叹于 Chrome 将
Web
kit 内核发挥的如此极致的时候,又或多或少忘记了 Safari 才是
Web
kit 内核的始作俑者。千姿百态的浏览器中,有的很早就被淘汰了,有的直到现在还被广泛使用在各类主流操作系统之上...
Web
前端浏览器兼容
初探
【转】
前言 浏览器兼容是前端开发人员必须掌握的一个技能,但是初入前端的同学或者其他后台
web
开发同学往往容易选择忽略,而形成两个极端: 1 我最开始都是使用IE6,IE6上没问题,其它浏览器坑爹(多出现与前端后端一起搞的同学,小生2年前就这种状态,鼓励人家用ie6.。。。) 2 我要遵循标准,我只要ff就好,IE就是坑爹的玩意,我不必去理他(小生一年前的心态。。。) 现在看来,之前的想...
JavaScript
87,907
社区成员
224,614
社区内容
发帖
与我相关
我的任务
JavaScript
Web 开发 JavaScript
复制链接
扫一扫
分享
社区描述
Web 开发 JavaScript
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章