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

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库

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值