WebCore中的主要对象

转自:Webkit技术译文系列(一):WebCore中的主要对象

原文链接 http://webkit.org/coding/major-objects.html

WebCore使用许多对象来表示内存中的web页面,本文描述了其中的一些主要对象以及它们之间的关系。在某些情况下,对象之间的连接会断开,导致空指针引用。因此在遍历这些指针时,代码必须仔细的考虑"分离"(detached)的情形,并优雅的处理空指针。

 
 +---------+
 | Chrome  |
 +----+----+
      |
  +---+---+     +----------+
  | Page  +---->| Settings |
  +---+---+     +----------+
      |
      +-------------------------- ... other Frame objects
      |
  +---+---+   +-------------+                 +-------------------+
  | Frame +---+ FrameLoader +                 | JSDOMWindowShell  |
  +---+---+   +-------------+                 +---------+---------+
     / /                                                |
    /   /      //  Re-used after navigation   //        |
.../....|...............................................|..........
  /     |      //  Replaced after navigation  //        |
 /      |                                               |
/<------|<-- Ptrs to Frame are null after navigation[1] |
|       |                                               |
| +-----+-----+         +-------------+                 |
| | DOMWindow |<--impl--+ JSDOMWindow |<------window----+
| +-----+-----+         +-------------+
|       |
|       |<-- Can be null for Documents created by XMLHttpRequest
|       |
| +-----+-----+         +-------------+
+-+ Document  |<--impl--+ JSDocument  |
  +-----+-----+         +-------------+
        |
        |<-- Can be null for DocumentType objects
        |
    +---+---+           +--------+
    | Node  |<---impl---| JSNode |
    +-------+           +--------+

[1] 导航到一个新的页面后,老的DomWindow和Document指向一个空的Frame,而Frame指向一个新的DomWindow和Document.

你可能感兴趣的:(Web,chrome,null,XMLhttpREquest,webkit)