zoukankan      html  css  js  c++  java
  • webkit 子资源加载过程

            从主控文档和子资源表单的页面。描述框架记叙文页主文档,布局。子元素。包含图片、CSSJS等。为了显示网页,先要把资源载入到内存。

    载入就是指把须要的资源载入到内存这一过程。

    Webkit用到非常多缓存机制,载入可能是从网络载入,也可能是从本地缓存载入。Webkit的载入分为两条线,一条是主文档的载入,一条是子资源的载入。

    首先须要解析主文档才知道用到哪些子资源。但并不一定要等到解析完主文档才载入子资源,也可能是边解析边载入子资源,即受到部分主文档就開始解析。解析到某个子资源就開始载入。


    以下以载入一个图片资源的过程为例说明子资源的载入过程。

     


            解析主文档时发现须要一个Image资源,然后通知ImageLoader载入Image资源。ImageLoader通知CachedResourceLoader发送载入请求。

    Loader首先查询MemoryCache是否有该资源,没有则创建一个CachedImage代表该资源。

    接着通过ResourceLoaderScheduler调度载入请求。ResourceLoaderScheduler创建一个SubresourceLoader实例来完毕载入请求(create->init->sendRequest)。ResourceHandle负责与平台相关的接口进行交互。发送请求和平台相关层,从平台相关层取回数据。在Android平台上,载入请求通过ResourceHandle传递到Webkit,在Webkit层又涉及到非常多类。

    首先查询http 缓存是否有该资源。没有则发送网络请求。数据回来后,通过各种回调传递到Webcore中。

            完毕一个资源的载入。涉及到数十个类。可谓相当复杂。

    版权声明:本文博客原创文章,博客,未经同意,不得转载。

  • 相关阅读:
    BZOJ4237:稻草人
    BZOJ4009:[HNOI2015]接水果(整体二分版)
    BZOJ3745:[COCI2015]Norma
    BZOJ3110:[ZJOI2013]K大数查询(整体二分版)
    BZOJ2716:[Violet 3]天使玩偶
    BZOJ2527:[POI2011]Meteors
    BZOJ4170:极光
    BZOJ1901:Dynamic Rankings
    Python基础终极实战 基于C/S架构的仿优酷项目
    大白话五种IO模型
  • 原文地址:https://www.cnblogs.com/zfyouxi/p/4712883.html
Copyright © 2011-2022 走看看