wnshtml,让页面加载比更快还快

白癜风治疗效果 http://news.39.net/bjzkhbzy/171212/5924243.html

QQ空间手机Web页面在利用TSW(QQ空间前端团队开发的一套nodejsWeb框架)直出提升首屏加载速度后,又在提升首屏加载速度这条不归路上更进了一步——页面加载还没有开始就已经结束!有没有吹水各位看官请往下看,让我们一起来见证奇迹。

大家先看下面三段视频,分别是在3G网络下直接打开HTML5页面以及使用wns-html打开的效果,使用wns-html在用户断网以及页面有更新时打开页面的效果。

温馨提示:播放视频可能会消耗您的网络流量,建议您在Wi-Fi环境下播放。

在3G网络下直接打开HTML5页面以及使用wns-html打开的效果

使用wns-html在用户断网的情况下打开页面的效果

使用wns-html在页面有更新时打开页面的效果

看完上面的视频,大家一定会很疑惑这个wns-html是什么,下面就让我们来详细介绍一下wns-html的原理。

要说wns-html,就需要先说一下wns。wns是QQ空间手机客户端使用的长连接通道,和WebSocket有一些类似,能够让手机客户端与服务器通过TCP、UDP协议保持双向长连接。wns-html在wns的基础上,通过wns通道来加载通过TSW直出的手机Web页面,并且提供了可靠、灵活的缓存方案,最大程度提升用户在加载手机Web页面时的体验。

wns-html的设计架构如上图所示,主要涉及两部分:

wns通道加载Web资源。

Web资源在本地的缓存策略。

wns通道加载Web资源

从wns-html的设计架构图可以简单看出,相比普通的WebView,wns-html在Native初始化WebView的时候就开始使用wns通道向服务器请求Web资源,在WebView初始化后就可以直接将已经读取到本地的资源放进WebView中渲染。那么这样做以后,页面究竟能快多少,让我们来看一个简单的对比。

以Android平台clickStart数据为例,对比来看wns-html的优势是比较明显的。点击入口按钮后约0.8s首屏页面就能显示出来,基本上同Native初始化WebView是同步进行的,webview初始化完即可看到首屏,再等待2.8-0.8约2s后缓存可以更新到最新的首屏内容。

从表格中可以看出,打开wns的gzip,平均提速能够达到ms!

注:上述数据均来自QQ空间留言板,具有一定业务相关性,绝对值仅供参考。如果页面本身比较小,wns加载的时间甚至可能比WebView初始化的时间还短。在这种情况下,相比普通的WebView加载页面,


转载请注明:http://www.aierlanlan.com/grrz/371.html