原文链接:Mozilla研究深入理解mozilla所需的背景知识<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />

Mozilla非常庞大,据说有数百万行的代码。逐行理解所有代码是不可能的(也没有必要),不过要理解它的架构,以便充分利用它的功能是可能的。Mozilla涉及的技术比较多,如果不理解这些技术,阅读它的代码和文档可不是件容易的事。这里列出一些主要的背景知识:

1.C++/JSmozilla使用的开发语言主要有C++JSC++用来开发核心代码,而JS只是用来胶合用户界面(XUL)和核心代码的。C++所占比例非常大,所以不熟悉C++就不可能理解mozillaC++本身比较复杂,幸好mozilla考虑到可移植性等问题,除了模板外,没有使用如异常和运行时类型识别等高级特性。

2. HTML/XMLHTML浏览器是mozilla的中心项目,自然HTML的浏览和编辑是mozilla的核心之一,了解相关HTML相关知识可以减少理解mozilla的障碍。另外mozilla中大量使用了XMLXML只是语法级的规范(与语义无法),光了解XML还不够,还要了解像XBLXULSVGXSLTSMIL等更专用的规范,尤其是XULXBL

3. DOM(Document Object Model)MozillaW<?xml:namespace prefix = st1 ns = "urn:schemas-microsoft-com:office:smarttags" />3C定义的DOM(Document Object Model)提供了强大的支持,对HTML文档的操作都是通过DOM接口进行的,所以至少要了解DOM的基本概念。

4.XPCOM(Cross Platform Component Object Model)。微软的COM(Component Object Model)只是针对Windows的,而XPCOM则是跨平台的,除此之外两者也并不完全相同,不过如果熟悉MS COM,再理解XPCOM就容易多了。XPCOMmozilla的核心架构,它所有的组件都是基于XPCOM的,不理解XPCOM就不可能理解mozilla。我认为《COM本质论》是介绍COM最好的教材,特别是前面几章写非常精辟的,不可不读。

5.网络协议。Mozilla中所有的项目差不多都与网络有关,里面涉及的协议,除了SSL外,都是应用级的协议,比如HTTPFTPSMTPPOP3IMAP等等。不必清楚这些协议的所有细节,知道其功能和主要内容即可。

6. GUI。跨平台是Mozilla一直努力的目标,而GUI是跨平台的最大障碍之一,mozilla为此下了很大功夫,这部分代码占有相当大的比例。所幸各种GUI都大同小异,如果熟悉一种或多种GUI系统,理解这块不成问题。

7.编译原理。所有语言的解析都要用到编译原理的知识,mozilla中要解析HTML和所有XML格式的文件,自然离不开编译原理。熟悉编译原理中的词法分析和语法分析,对理解mozilla会有不小的帮助。

更多相关文章

  1. HTML显示日期时间代码 - [js 特效代码]
  2. 解决html代码中插入的图片在浏览器中不显示的办法
  3. HTML代码格式化工具
  4. j2ee的web项目,有最终的html代码(即f12看到的最终给用户浏览器展示
  5. 如果字符串包含html代码,如何用python检测?
  6. 【竞价网站绝技】根据访客ip,页面显示访客所属城市的html代码(借用
  7. jquery入门-$.each 数组操作与表单操作代码
  8. HTML H5之ASCII 代码转义字符集实体编号
  9. 为什么代码放到DW里运行,和用记事保存为HTML的结果会不一样??

随机推荐

  1. C#开发Android应用的必备——Mono for An
  2. Android(安卓)应用设置全局Exception处理
  3. Android布局控件属性
  4. android使用android:ellipsize="end"无效
  5. Android布局文件中常用的属性
  6. Mac系统下android studio无法识别手机
  7. Android Studio系列(三)Version Control I
  8. Android中如何解决输入法键盘和activity
  9. 详解 Android 的 Activity 组件
  10. [置顶] Android 安装详解---Mr.Zhang