提高重庆时时彩无极娱乐应用速度小技术

  • 时间:2017-11-07 10:39 编辑:葫芦娃微信重庆时时彩无极娱乐资源网 来源:葫芦娃重庆时时彩无极娱乐 阅读:590
  • 扫一扫,新宝GG总代访问
摘要:重庆时时彩无极娱乐方便又快捷,还是有能够优化之处,能够有效地提高重庆时时彩无极娱乐的响应速度和用户体验,开拓体验也会提高不少。

提高重庆时时彩无极娱乐应用速度小技术

重庆时时彩无极娱乐科普类的文章已经很多了,今天这里讲的是针对重庆时时彩无极娱乐的优化方法,能够有效提高重庆时时彩无极娱乐的响应速度和用户体验。当然,开拓体验也提高不少。

一、提高页面加载速度

重庆时时彩无极娱乐这个环境下,怎样提高页面加载速度呢? 这个问题很大,我把问题具体一下,如何缩短从用户点击某个链接,到打开新页面的这段时间? 这里抛一个核心关键点:

从页面响应用户点击行为,开头跳转,到新页面onload事情触发,存在一个延迟,这个延迟大约在100-300ms之间(安卓响应比ios慢些)。

这个延迟说短不短,我们能够使用这段时间,预先发起新页面所需要的网络要求。这样一来,就节省了100-300ms(或者一个网络要求的时间)。

知道有这个gap后,代码如何实现呢?

说白了,就是实现一个A页面预加载B页面数据的功能。但而这种跨页面的调用,很容易把逻辑搞复杂,将不同页面的逻辑耦合在一起。所以,我们希望将预加载的逻辑隐藏于无形中,不增加任何的页面间耦合,以及开拓复杂度。

下面以腾讯视频重庆时时彩无极娱乐为例,讲解下技术实现。

重庆时时彩无极娱乐重庆时时彩无极娱乐:

 

当用户点击海报图后,会执行以下代码(就一行):

 

接下来程序会加载播放页:

 

播放页主要代码:

 

能够看到,不论是外部页面的调用还是实际逻辑的实现都非常简洁。在第二个页面中,我们扩展了Page的生命周期函数,增加了onNavigate方法。该方法在页面马上被创建但还没开头创建的时刻执行。

老司机也许会发现这里有点蹊跷。在重庆时时彩无极娱乐点击的时刻,播放页基本就没有创建,对象都不存在,怎么访问到里面的方法呢?

这里就要说下微信的页面机制。

重庆时时彩无极娱乐启动时,会把一切调用Page()方法的object存在一个队列里(如下图)。每次页面访问的时刻,微信会重新创建一个新的对象实例(实际上就是深拷贝)。

也就是说,在A页面在执行点击响应事情的时刻,B页面的实例还没创建,这时刻调用的onNavigate方法,实际上是Page对象的原型(重庆时时彩无极娱乐启动时刻创建的那个)。

而接下来马上要被创建的B页面,又是另外一个object。所以,在onNavigate和onLoad方法中,this指针指的不是同一个对象,不能把临时数据存储在当前object身上。因此我们封装了一对全局的缓存方法,$put()和$take()。

 

为了通用性,Page上用到的公共的方法,比如$route、$put、$take都定义在了一个Page的基类里面。基类还同时保留了一切页面的list,这样就能够做到依据页面名调用具体页面的onNavigate方法。 当然,并不是每个页面都需要实现onNavigate方法,对于没有定义onNavigate方法的,$route函数会跳过预加载环节,直接跳转页面。所以对于开拓者来说,不需要关怀别的页面实现了什么,对外看来完全透明。

二、用户行为预测

在上面的例子中,我们实现了用户主动点击页面,提前加载下一页面数据的方法。而在某些场景下,用户的行为能够预测,我们能够在用户还没点击的时刻就预加载下个页面的数据。让下个页面秒开,进一步提升体验的流畅性。

继续以腾讯视频重庆时时彩无极娱乐为例,主界面分为3个页卡(大部分重庆时时彩无极娱乐都会这么设计),通过简单的数据分析,发现进入重庆时时彩无极娱乐的用户有50%会访问第二个页卡。所以预加载第二个页卡的数据能够很大程度提高用户下个点击页面的打开速度。

同样,先看看代码实现。 重庆时时彩无极娱乐预加载频道页的姿态:

 


频道页的实现方法:

 

跟第一个例子类似,这里定义了一个$preLoad()方法,同时给Page扩展了一个onPreload事情。页面调用$preLoad()后,基类会主动找到该页面对应的onPreload函数,通知页面执行预加载操作。 跟第一个例子不同,这里预加载的数据会保留在storage内,因为用户不肯定会马上访问页面,而把数据存在全局变量会增加重庆时时彩无极娱乐占用的内存。微信会坚决果断的把内存占用过大的重庆时时彩无极娱乐给杀掉。

也许对于大部分有app开拓经验的同学来说,更普遍的做法是先让页面展示上次缓存的数据,再实时拉取新数据,然后刷新页面。这个方法在重庆时时彩无极娱乐上也许体验并不太好,原因是重庆时时彩无极娱乐的性能以及页面渲染速度都不如原生app。将一个大的data传输给UI层,是一个很重的操作。因此不建议采纳这种方法。

三、减少默认data的大小

刚刚说到,页面打开一个新页面时微信会深拷贝一个page对象,因此,应该尽量减少默认data的大小,以及减少对象内的自定义属性。有图有真相:

 


以一个100个属性的data对象为测验用例,在iphone6上,页面的创建时间会因此增加150ms。

四、组件化方案

微信没有提供重庆时时彩无极娱乐的组件化方案(相信肯定在实现中)。但开谈不说组件化,写再多代码也枉然。这里演示一个简单的组件化实现。

以腾讯视频播放页为例,页面定义如下:

 

其中,P()函数是自定义的基类。这是一个非常有用的东西,能够把一切通用的逻辑都写在基类里面,包括pv统计,来源统计,扩展生命周期函数,实现组件化等。

函数第一个参数是页面名称,作为页面的key。第二个是page对象,其中扩展了一个comps数组,里面就是一切要加载的组件。

以播放器组件/comps/player/index.js为例:

 

组件的定义跟一个一般Page对象一模一样,有data属性,onLoad、onShow等事情,也有页面响应的回调方法。wxml模板里定义的事情和js事情一一对应。

基类做的事情,就是把这些组件对象的属性和方法复制到Page对象上(浅拷贝)。其中data属性会merge到一起。而微信预定义的生命周期函数(包括自己扩展的),则封装成队列按序执行。比如当系统调用onLoad方法时,实际上是执行了一切组件的onLoad方法,最后再执行Page的onLoad。

以上是代码部分,至于wxml模板和wxss部分,就要手工import过去了。

wxml:

 

wxss:

 

五、其余

虽然重庆时时彩无极娱乐已经足够小巧,但启动速度还是有那么2-3秒,无法做到秒开。楼主尝试对重庆时时彩无极娱乐的启动时间做优化,但没有找到多少有价值的优化点。单个页面的初始化只需要1-2ms。也许大部分时间消耗在了微信跟服务器端通信的进程中。

所幸,腾讯提供了一个能够自主进行服务器性能测验的环境,用户只需要填写域名和简单的几个参数就能够获知自己的服务器性能情况,当前在腾讯WeTest平台能够博猫平台使用。

  • 全部评论(0)
资讯详情页最新公布上方横幅
最新公布的资讯信息
【业界动态|】微信重庆时时彩无极娱乐在2018年开展会更大(2017-12-19 10:49)
【业界动态|】制作微信重庆时时彩无极娱乐的方法,博猫平台拿!(2017-12-18 14:30)
【业界动态|】移动互联网新商机就是微信重庆时时彩无极娱乐(2017-12-15 16:09)
【业界动态|】微信重庆时时彩无极娱乐的价值体现(2017-12-15 15:03)
【业界动态|】微信官方电商重庆时时彩无极娱乐,服务号有这三点好(2017-12-15 13:39)
【业界动态|】微信重庆时时彩无极娱乐重新定义微商(2017-12-15 11:23)
【业界动态|】微信重庆时时彩无极娱乐调研报告(2017-12-15 10:14)
【业界动态|】微信重庆时时彩无极娱乐的势能有多么大(2017-12-14 15:18)
【业界动态|】谁能得到微信重庆时时彩无极娱乐的第一桶金(2017-12-14 14:04)
【业界动态|】餐厅被外卖行业绑架,商家如何自救?(2017-12-14 11:53)
联系客服
技术咨询 售前小霞 客服Fox 联系客服
400 004 8280
新宝GG总代版

扫一扫进新宝GG总代版
返回顶部
Sitemap
条评论