起步软件技术论坛
搜索
 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 2075|回复: 3

[分享] 学会这两点你的小程序运行速度会显著提升!

[复制链接]

67

主题

198

帖子

725

积分

高级会员

Rank: 4

积分
725
QQ
发表于 2019-8-3 01:09:05 | 显示全部楼层 |阅读模式
本帖最后由 大灰兔 于 2019-8-3 16:25 编辑

直奔主题:这两点就是1、数据集的自动模式设置为空,你想要加载时再刷新;2、学会运用数据保存到本地缓存。




前一段写过一篇分享《在任何页面框架下实现无顿挫感——秒开页面
也是讲这两点的,可能写的比较啰嗦,不知道有多少人看明白了。这里再重提下。
牛刀小程序的特点是在主页上是加载很快的,但在二级页面里一旦有数据集需要加载,就会变得很卡顿。怎么解决呢?我们先要理解这个页面周期函数的顺序,显示事件、加载事件、隐藏事件、卸载事件。所有的页面都是按照这个顺序进行的,但是也有不同,tabBar导航页只要加载完毕了,它就一直在,页面不会卸载,所以你再打开它时会很快,没有任何卡顿。论坛也有朋友问,为什么我的页面打开后退时图片等内容不显示了呢?我也发现过这个问题,难道是页面周期出来问题,经过我的实践,只要在页面显示事件中刷新所要加载的数据集,在后退返回时就不会发生类似问题。证明页面周期没有问题,只是返回时数据集没有刷新,可能是个缺陷,还没有得到牛刀技术的确认。


为什么我能发现解决这个问题,是因为我习惯把所有数据的自动模式清空(主页除外、没有必要),在显示或加载事件中刷新数据集,或者在需要加载某个数据集时再(点击等事件中)刷新,这样无任何卡顿,运行速度显著提升。


数据缓存的运用环境是,大量数据需要加载过滤,例如论坛等。在数据刷新后,页面隐藏或卸载事件中把数据保存到本地缓存,然后在新页面的显示或加载事件中执行从本地缓存加载数据,需要过滤的地方自己设置过滤。


也有时这两点要同时使用,例如《怎么做到返回刷新》。


以上这两点我是仔细观察国民软件微信得出的,没有看源码因为我不懂代码。微信支持左右滑动切换,说明它用的是滑块视图组件,根本没有使用tabBar导航,当你点击下面导航图标时,它有稍微的加载,说明用到了某个数据集才加载,不用不加载。数据缓存是在朋友圈发现的,因为手机用着用着就卡了,全是微信数据的功劳。




现在自学JavaScript,因为牛刀上这些组件是基础的,高级或更多功能的实现还是要依靠写代码,例如,我非常需要解决这个距离问题,牛刀技术给我回答下就“用户待确认”了,其实,我根本无法确认。

14

主题

37

帖子

95

积分

初级会员

Rank: 2

积分
95
QQ
发表于 2019-8-3 04:03:42 | 显示全部楼层
其实目前距离问题,可通过画代码解决的。
以下是我的解决办法,
建立动态数据集《位置距离缓存数据》 微信图片_20190803034807.png

服务画代码
微信图片_20190803034812.png

先根据用户的位置的某个特征(例如市,区,或者匹配geohash码)进行第一步的筛选  -  得到数据集  rows
然后对rows进行循环计算距离,建立《位置距离缓存数据》

然后在前端页面加载完成的时候调用的服务
微信图片_20190803034759.png



这个做法的弊端是加重服务器的负担,但是好处比在前端计算要好得多:距离排序精准不会出现错乱的问题,用户前端不会卡顿,直接服务筛选,不需要全部数据加载分页,最重要是不用写代码
需要注意的是,每一次生成新的数据之前要把旧的数据删除。
而服务设计的时候,尽量在进入循环之前将不符合的数据筛选掉。

而这个服务还有一个改进的地方。   
预先判断用户的经纬位置是否变化,如果无变化或者变化极小(例如几米或几十米之内),可以直接跳过循环计算,直接使用上一次的缓存数据就可以了,这样就避免不必要的服务器资源浪费。
以上均可以画代码解决
回复 支持 反对

使用道具 举报

718

主题

2841

帖子

5657

积分

论坛元老

Rank: 8Rank: 8

积分
5657
QQ
发表于 2019-8-3 09:34:53 | 显示全部楼层
支持分享,谢谢学习中
WEX5初学者,欢迎初学者交流
QQ:597558229
tel:15857336322
回复 支持 反对

使用道具 举报

67

主题

198

帖子

725

积分

高级会员

Rank: 4

积分
725
QQ
 楼主| 发表于 2019-8-3 21:33:32 | 显示全部楼层
jacolzhong 发表于 2019-8-3 04:03
其实目前距离问题,可通过画代码解决的。
以下是我的解决办法,
建立动态数据集《位置距离缓存数据》

谢谢分享。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|X3技术论坛|Justep Inc.    

GMT+8, 2024-4-24 14:01 , Processed in 0.079586 second(s), 26 queries .

Powered by Discuz! X3.4

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表