zoukankan      html  css  js  c++  java
  • Webkit之资源加载

    一、webkit资源分类

    webkit中有多种资源,大致分为以下几种:

    1. HTML文本
    2. CSS样式文本 - CachedCSSStyleSheet
    3. 字体 - CachedFont
    4. 图片 - CachedImage
    5. 只读资源 - CachedRawResource
    6. JavaScript文本 - CachedScript
    7. SVG - CachedSVGDocument
    8. 视频字幕 - CachedTextTrack
    9. XSL样式表 - CachedXSLStyleSheet

    类图如下:

    HTML文本是网页的主资源,它描述了网页的框架、布局。其它的便是子资源,是组成网页的子元素。

    二、webkit资源加载主线

    Webkit 的加载分为两条线路,一条是主资源(即HTML文本)的加载,另一条是子资源的加载。主资源里有子资源的描述信息,所以首先要加载主资源,然后加载子资源。

    资源加载抽象流程图:

    从流程图中我们看到,并不是等待加载主资源完成后再来解析HTML和加载子资源,而是边加载主资源然后解析HTML,边加载子资源。

    四、webkit资源加载模型

    资源加载都是交给CachedResourceLoader来做,最后交给ResourceLoadScheduler完成,而ResourceHandle则是与平台相关的网络实现(cf或curl等)

    五、webkit资源加载过程

    六、主资源和子资源的加载

    主资源和子资源的加载都是通过上面的"ResourceLoaderProcess"实现的,而CachedResourceLoader则是它们的共同入口。

     1 class CachedResourceLoader {
     2 public:
     3     CachedResourceHandle<CachedRawResource> requestMainResource(CachedResourceRequest&);
     4 
     5      CachedResourceHandle<CachedImage> requestImage(CachedResourceRequest&);
     6      CachedResourceHandle<CachedCSSStyleSheet> requestCSSStyleSheet(CachedResourceRequest&);
     7      CachedResourceHandle<CachedCSSStyleSheet> requestUserCSSStyleSheet(CachedResourceRequest&);
     8      CachedResourceHandle<CachedScript> requestScript(CachedResourceRequest&);
     9      CachedResourceHandle<CachedFont> requestFont(CachedResourceRequest&, bool isSVG);
    10      CachedResourceHandle<CachedRawResource> requestRawResource(CachedResourceRequest&);
    11      CachedResourceHandle<CachedSVGDocument> requestSVGDocument(CachedResourceRequest&);    
    12 
    13      CachedResourceHandle<CachedXSLStyleSheet> requestXSLStyleSheet(CachedResourceRequest&);
    14      CachedResourceHandle<CachedResource> requestLinkResource(CachedResource::Type, CachedResourceRequest&);
    15      CachedResourceHandle<CachedTextTrack> requestTextTrack(CachedResourceRequest&);
    16 };

    CachedResourceLoader有主资源和子资源加载的方法

    主资源加载:

    子资源加载:(以加载图片资源为例)

    参考:

    http://blog.csdn.net/milado_nju/article/details/8927821

    http://blog.csdn.net/horkychen/article/details/26435373

  • 相关阅读:
    观《归来》,写《后感》
    断言(Assert)与异常(Exception)
    diff/merge configuration in Team Foundation
    【转】程序员/开发人员的真实生活[多图预警]
    【转】被诅咒的程序员的七宗罪
    【转】如此心机的老婆,不教出一个优秀的女儿才怪了
    【转】根据中国气象局提供的API接口实现天气查询
    asp.net设置默认打开页面,Web.config,defaultDocument
    强制浏览器使用兼容模式,Web.config,httpProtocol
    文献标识码、文献载体类型标识
  • 原文地址:https://www.cnblogs.com/dongc/p/4621187.html
Copyright © 2011-2022 走看看