The invention discloses a method for increasing the speed of loading web pages, including a first process chain and a second process chain for parallel processing; the first process chain includes registering a NSUrlProtocol custom subclass, creating a WebView and initializing it; the WebView initiates a page request; and the NSUrlProtocol custom subclass intercepts a page request issued by the WebView; The second process chain consists of constructing a network connection of NSUrlSession, receiving the page data of the response, and generating a memory stream; the flow bridge between step 54 and step B2 after that, the NSUrlProtocol custom subclass loads the page data, opens the subthread, gets the page data from the memory stream, and returns it to the WebKit kernel, WebView according to the page Face data rendering page, this design makes the request time better, loading speed faster, improve the user's application experience.
【技术实现步骤摘要】
一种提升加载网页速度的方法
本专利技术涉及页面加载处理领域,特别是一种能够提升加载网页速度的方法。
技术介绍
由于H5页面具有快速迭代、灵活配置运营等优势,在当今的移动端主流APP里,H5页面所占比重越来越大。传统的IOS终端加载H5页面的方式是完全依赖原生的WebView组件,先完成一系列的WebView初始化流程,等WebKit内核准备就绪后,再由WebView完全依赖网络去请求加载页面的相关资源、数据。此方式具有以下缺点,1)对页面的请求加载需要等原生的WebView组件初始化就绪后才开始,而这个初始化过程耗时不少,造成请求时机相对滞后;2)加载页面的资源和数据完全依赖网络,造成页面出现长时间的白屏现象,影响用户体验。
技术实现思路
为解决上述技术问题,本专利技术的目的是提供一种WebView组件初始化就绪的流程链以及加载页面数据的流程链通过并行处理后流式桥接以提高加载页面速度的方法。本专利技术采用的技术方案是:一种提升加载网页速度的方法,包括并行处理的第一流程链和第二流程链;第一流程链包括以下步骤:a1、注册用于拦截WebView请求的NSUrlProtocol自定义子类;a2、创建WebView并初始化;a3、WebView发起页面请求;a4、NSUrlProtocol自定义子类拦截WebView发出的页面请求;第二流程链包括以下步骤:b1、构建原生的基于NSUrlSession的网络连接,根据需加载的页面请求页面数据;b2、接收步骤b1发出请求后响应的页面数据,生成内存流;所述步骤S4之后与步骤b2之后流式桥接,并且还包括步骤:c、NSUrlPro ...
【技术保护点】
1.一种提升加载网页速度的方法,其特征在于,包括并行处理的第一流程链和第二流程链;第一流程链包括以下步骤:a1、注册用于拦截WebView请求的NSUrlProtocol自定义子类;a2、创建WebView并初始化;a3、WebView发起页面请求;a4、NSUrlProtocol自定义子类拦截WebView发出的页面请求;第二流程链包括以下步骤:b1、构建原生的基于NSUrlSession的网络连接,根据需加载的页面请求页面数据;b2、接收步骤b1发出请求后响应的页面数据,生成内存流;所述步骤S4之后与步骤b2之后流式桥接,并且还包括步骤:c、NSUrlProtocol自定义子类加载页面数据,开启子线程,从内存流中获取页面数据,并返回给WebKit内核;d、WebView根据页面数据渲染页面。
【技术特征摘要】
1.一种提升加载网页速度的方法,其特征在于,包括并行处理的第一流程链和第二流程链;第一流程链包括以下步骤:a1、注册用于拦截WebView请求的NSUrlProtocol自定义子类;a2、创建WebView并初始化;a3、WebView发起页面请求;a4、NSUrlProtocol自定义子类拦截WebView发出的页面请求;第二流程链包括以下步骤:b1、构建原生的基于NSUrlSession的网络连接,根据需加载的页面请求页面数据;b2、接收步骤b1发出请求后响应的页面数据,生成内存流;所述步骤S4之后与步骤b2之后流式桥接,并且还包括步骤:c、NSUrlProtocol自定义子类加载页面数据,开启子线程,从内存流中获取页面数据,并返回给WebKit内核;d、WebView根据页面数据渲染页面。2.根据权利要求1所述的一种提升加载网页速度的方法,其特征在于:在步骤b2之后还包括b21、在接收页面数据完毕后,写入本地缓存。3.根据权利要求2所述的一种提升加载网页速度的方法,其特征在于:所述步骤b1中在接收全量页面数据后,根据页面格式对全量页面数据进行分析,将全量页面数据分离出模板部分和数据部分,并且分别将相对应的全量页面数据、模板部分、数据部分写入本地缓存。4.根据权利要...
【专利技术属性】
技术研发人员:余敬龙,
申请(专利权)人:广东能龙教育股份有限公司,
类型:发明
国别省市:广东,44
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。