本博客日IP超过2000,PV 3000 左右,急需赞助商。
极客时间所有课程通过我的二维码购买后返现24元微信红包,请加博主新的微信号:xttblog2,之前的微信号好友位已满,备注:返现
受密码保护的文章请关注“业余草”公众号,回复关键字“0”获得密码
所有面试题(java、前端、数据库、springboot等)一网打尽,请关注文末小程序
腾讯云】1核2G5M轻量应用服务器50元首年,高性价比,助您轻松上云
腾讯最近开源了一款高性能的Hybrid框架VasSonic。目前网上还没有相关的使用教程,因此我便制作和整合了这部分内容,希望能对大家有所帮助。
关于VasSonic我就不在过多的介绍了,大家可以查看这篇文章的介绍。
VasSonic在项目中的简称Sonic。他们的口号是:专注于提升H5首屏加载速度。
下面就开始我们今天的内容,如何用php实现Sonic,把Sonic作为前端。
下载并导入sonic.php。
require_once(PATH."/sonic.php");
然后添加以下代码。
if (isset($_GET['sonic']) && $_GET['sonic'] == '1') { // Check if Sonic is needed or not util_sonic::start(); $this->_index_v5($uin); util_sonic::end(); }
前端使用
下面是一个简单的演示,演示如何使用Sonic为前端。
<html> <head> <meta http-equiv="Content-Type" content="text/html;charset=UTF-8"> <title>业余草 Sonic php 实例:www.xttblog.com</title> <script type="text/javascript"> //通过JavaScript界面与移动客户端进行交互以获取Sonic差异数据。 function getDiffData(){ window.sonic.getDiffData(); } //步骤3:处理来自移动客户端的响应,包括Sonic响应代码和差异数据。 function getDiffDataCallback(result){ var sonicStatus = 0; /** *声音状态: * 0:无法从手机客户端获取任何数据。 * 1:手机客户端首次使用Sonic。 * 2:移动客户端重新加载整个网站。 * 3:网站将通过本地刷新动态更新。 * 4:移动客户端的Sonic请求收到304响应代码,没有任何修改。 * / sonicUpdateData = {}; var result = JSON.parse(result); if(result['code'] == 200){ sonicStatus = 3; sonicUpdateData = JSON.parse(result['result']); } else if (result['code'] == 1000) { sonicStatus = 1; } else if (result['code'] == 2000) { sonicStatus = 2; } else if(result['code'] == 304) { sonicStatus = 4; } handleSonicDiffData(sonicStatus, sonicUpdateData); } //步骤3:处理来自移动客户端的响应,包括Sonic响应代码和差异数据。 function handleSonicDiffData(sonicStatus, sonicUpdateData){ if(sonicStatus == 3){ //网站将被动态更新,并在本地刷新模式下运行一些JavaScript。 var html = ''; var id = ''; var elementObj = ''; for(var key in sonicUpdateData){ id = key.substring(1,key.length-1); html = sonicUpdateData[key]; elementObj = document.getElementById(id+'Content'); elementObj.innerHTML = html; } } } </script> </head> <body> //步骤1:通过插入不同的注释锚来指定模板和数据。 <div id="data1Content"> <!--sonicdiff-data1--> <p id="partialRefresh"></p> <!--sonicdiff-data1-end--> </div> <div id="data2Content"> <!--sonicdiff-data2--> <p id="data2">here is the data</p> <!--sonicdiff-data2-end--> <p id="pageRefresh"></p> </div> <div id = "data3">data3</div> //步骤2:通过Javascript界面从移动客户端接收diff数据。 <script type="text/javascript"> window.function(){ getDiffData(); } </script> </body> </html>
从上面的代码中,我们可以看出,php版本的使用sonic主要分3步。
步骤1:通过插入不同的注释锚来指定模板和数据。数据将用锚包裹<!– sonicdiff-moduleName –> <!– sonicdiff-moduleName-end –>。html的另一部分是模板。
<div id="data1Content"> <!--sonicdiff-data1--> <p id="partialRefresh"></p> <!--sonicdiff-data1-end--> </div> <div id="data2Content"> <!--sonicdiff-data2--> <p id="data2">here is the data</p> <!--sonicdiff-data2-end--> <p id="pageRefresh"></p> </div> <div id = "data3">data3</div>
步骤2:通过JavaScript界面从移动客户端接收到不同的数据。当网站完成时,演示的JavaScript界面涉及。但是,当涉及到的时候并不是不可改变的,网站可以随时决定。
<script type="text/javascript"> window.function(){ getDiffData(); } </script>
步骤3:处理从移动客户端收到的不同状态。演示演示如何根据来自移动客户端的差异数据查找和替换指定锚点的数据,然后更新网站。
//步骤3处理来自移动客户端的响应,包括Sonic响应代码和差异数据。 function getDiffDataCallback(result){} //步骤3处理来自移动客户端的响应,包括Sonic响应代码和差异数据。 function handleSonicDiffData(sonicStatus,sonicUpdateData){}
以上就是php对接Sonic的教程。欢迎留言吐槽!
最后,欢迎关注我的个人微信公众号:业余草(yyucao)!可加作者微信号:xttblog2。备注:“1”,添加博主微信拉你进微信群。备注错误不会同意好友申请。再次感谢您的关注!后续有精彩内容会第一时间发给您!原创文章投稿请发送至532009913@qq.com邮箱。商务合作也可添加作者微信进行联系!
本文原文出处:业余草: » php对接Hybrid框架VasSonic教程