Application Cache manifest 的处理 (Webkit)

<html manifest="xxx">

缓存构成 url+.manifest+manifest     或者 url (没有manifest)

   

webkit解析html标签,发送(异步).manifest请求

->HTMLTreeBuilder::processStartTag

->HTMLConstructionSite::insertHTMLHtmlStartTagBeforeHTML

->HTMLHtmlElement::insertedByParser

->documentLoader->applicationCacheHost()->selectCacheWithManifest或者selectCacheWithoutManifest 

      (创建ApplicationCacheGroup)

->ApplicationCacheGroup::update->ApplicationCacheGroup::createResourceHandle 

      发送manifest请求,ApplicationCacheGroup作为ResourceHandleClient

-----------------异步-------------------

根据.manifest发送(异步)缓存请求

->ApplicationCacheGroup::didReceiveResponse

->ApplicationCacheGroup::didReceiveData

      收到manifest

->ApplicationCacheGroup::didFinishLoading

      解析manifest   (缓存队列)

-----------------------------------------

->ApplicationCacheGroup::startLoadingEntry

->ApplicationCacheGroup::createResourceHandle

      依次发送请求获取缓存资源

->ApplicationCacheGroup::didReceiveResponse

    ->ApplicationCacheResource::create (创建CacheResource)

->ApplicationCacheGroup::didReceiveData

    ->(填充CacheResource)

->ApplicationCacheGroup::didFinishLoading

-----------------------------------------

保存缓存

->ApplicationCacheGroup::deliverDelayedMainResources

->finishedLoadingMainResource

    ->创建主url的CacheResource

->ApplicationCacheGroup::checkIfLoadIsComplete

->ApplicationCacheStorage::storeNewestCache

      保存在.db文件里面

*******************************************

第二次访问根据url映射从本地数据库取缓存

->MainResourceLoader::load

->ApplicationCacheHost::maybeLoadMainResource

->ApplicationCacheGroup::cacheForMainRequest

->SubstituteData(resource->data(), resource->response().mimeType(), resource->response().textEncodingName(), KURL());

      获得缓存数据

->(同步)MainResourceLoader::didReceiveResponse

->(同步)MainResourceLoader::didReceiveData   

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值