webkit学习笔记1---webcore简单执行流程

本文详细阐述了webcore执行的大致流程,从构建请求到资源下载、数据接收、DOM树和渲染树创建,直至数据显示的全过程。重点介绍了请求构造、缓存策略、平台下载机制及数据处理细节。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

webcore执行的大致流程如下:

1 通过URL构造请求

1 WebMutableURLRequest::initWithURL( 

 BSTR url,

      WebURLRequestCachePolicy cachePolicy,

double timeoutInterval);

url:URL地址

cachePolicy:这实际是个枚举类型

typedef enum _WebURLRequestCachePolicy

{

    WebURLRequestUseProtocolCachePolicy,

    WebURLRequestReloadIgnoringCacheData,

    WebURLRequestReturnCacheDataElseLoad,

    WebURLRequestReturnCacheDataDontLoad

} WebURLRequestCachePolicy;

timeoutInterval:用来设置超时的时间

2 WebMutableURLRequest::setHTTPMethod( 

BSTR method)

method:GET or POST

2 载入请求

WebFrame::loadRequest( 

 IWebURLRequest* request);

Request:请求对象指针

具体的函数调用栈如下:

3 资源的下载

Loader模块会首先判断资源是否在cache中,如果没有,会调用相关平台的下载库,这里是CFNetwork,调用的是CFNetwork.dll

4 数据的接收

具体过程如下

static void didReceiveData(CFURLConnectionRef conn, CFDataRef data, CFIndex originalLength, const void* clientInfo);

void FrameLoader::receivedFirstData()

HRESULT WinLauncherWebHost::updateAddressBar(IWebView* webView)

函数调用栈如下:

5 数据的处理---创建dom树和render树

入口点:

void HTMLDocumentParser::pumpTokenizer(SynchronousMode mode)

在生成DOM树每个节点的同时,同步生成Layout树的每个节点,其中保存了布局信息,和CSS样式信息。

6数据的显示

调用平台相关的图形库,我这里是CoreGraphics库

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值