专栏名称: 腾讯开源
腾讯官方开源动态、开发经验分享
目录
相关文章推荐
筑龙电气  ·  变压器台数与负荷率,这些要点你掌握了吗? ·  12 小时前  
知识星球精选  ·  今年315,有点阴招全用在了打工人身上 ·  14 小时前  
知识星球精选  ·  全网最好用的数据分析工具箱,限时优惠加入! ·  14 小时前  
HR职场知识库  ·  基于战略的绩效管理体系设计(147页PPT) ·  昨天  
51好读  ›  专栏  ›  腾讯开源

无需后台接入?带你玩转VasSonic 2.0里的Local Server

腾讯开源  · 公众号  ·  · 2017-11-29 09:03

正文

腾讯手Q增值团队于今年8月份正式开源了VasSonic,一个轻量级高性能的Hybrid框架。VasSonic框架使用并行加载、动态缓存、增量更新等手段,实现了终端H5页面的秒开,对用户体验的优化做的非常极致。时隔三个月,在业务需求的驱动和开源社区的共同努力下,VasSonic迎来了开源后的第一次重大更新:VasSonic 2.0。

点击阅读原文直接访问VasSonic源码:
https://github.com/Tencent/VasSonic


VasSonic 2.0新特性介绍

VasSonic 2.0新增了以下几个特性:

  • 支持Local Server模式,在该模式下无需后台配合亦可完成秒开,大大降低接入门槛

  • 支持自定义请求头和自定义响应头

  • 支持Cache-Control来控制缓存生命周期

  • 支持非utf-8编码


其中Local Server模式是2.0版本最大更新,也是本文重点介绍的一个特性。


玩转Local Server模式

Local Server模式介绍


一般情况下,一个项目要接入VasSonic,需要前端、终端、后台三端配合使用这个框架,才能达到预期的效果,这样有一定的接入成本。为了使开发者更加方便地使用VasSonic,Local Server模式应运而生。Local Server,顾名思义,相比于一般情况下终端、前端、后台全部接入,它允许在业务后台无法及时支持时,通过终端模拟server,提供本该后台支持的能力,从而降低接入成本。


开启Local Server模式后,对于从非Sonic后台返回的页面数据,终端会在收到数据的第一时间执行本该Sonic后台完成的处理逻辑:对页面进行模板和数据的拆分,对比本地的模板和数据缓存,根据两者的对比结果,添加Sonic响应头(eTag、template-change、template-tag),将此次请求返回伪装成正常情况下的Sonic后台返回。终端逻辑层面上对返回的数据是来自真正的Server还是Local Server并无感知,终端只需按照正常逻辑进行处理即可。因此在Local Server模式下,后台无需接入Sonic。

Local Server接入方式

在Android端使用Local Server,首先需要引用最新的VasSonic依赖,在build.gradle中添加:

compile 'com.tencent.sonic:sdk:2.0.0-beta'

Local Server功能默认是关闭的,需要初始化SonicSession配置时打开Local Server,Android端代码如下:

SonicSessionConfig.Builder sessionConfigBuilder = new SonicSessionConfig.Builder();
sessionConfigBuilder.setSupportLocalServer(true);
sessionConfigBuilder.build();

在iOS端使用Local Server,需要在Podfile中指定引入:

source 'https://github.com/CocoaPods/Specs.git'

platform :ios, '8.0'


target 'TargetName' do

pod 'VasSonic', '2.0.0-beta'

end

然后在代码中通过 SonicSessionConfiguration 打开Local Server

SonicSessionConfiguration *configuration = [SonicSessionConfiguration new];

configuration.enableLocalServer = YES;

[[SonicEngine sharedEngine] createSessionWithUrl:self.url withWebDelegate:self         withConfiguration:configuration];

具体接入方法请详细参考 官方Demo (https://github.com/Tencent/VasSonic)。

Local Server执行流程

VasSonic根据本地是否有缓存以及本地缓存数据与服务器数据的差异情况分为首次加载、完全缓存、数据更新、模板更新四种模式。除首次加载外,其他三种模式在Local Server下的执行流程与正常模式均有所差异。


首次加载

Local Server的首次加载与正常的首次加载流程一致。具体细节可参考快速模式或者标准模式的首次加载流程。

非首次加载·完全缓存







请到「今天看啥」查看全文