如何优化app速度
2015-09-16 13:57
344 查看
一、后台执行
这是一条很通用,也容易理解的方法。用户不会愿意盯着进度条傻傻地等待,除了“取消”没有其他选择。在系统处理一些网络任务的时候,完全可以允许用户做一些其他的事情。
[b]二、在载入前显示内容[/b]
客户端与web的一个不同点,客户端的显示内容包括本地数据和网络数据两部分。在设计界面时,将更多的信息放在本地,在网络数据未载入时即显示本地数据,让用户产生一种“已经载入一半了”的错觉,即使最终的耗时一样,心理感受也会更快。当然把数据过多地写在本地,会牺牲一些灵活性,需要根据具体情况考虑。
三、充分利用好缓存
缓存可以把网络数据保存在本地,下次打开时无需要再次向网络请求,减少流量并减少等待时间。在设计时,可以先显示缓存内容,同时后台到网络上拉取新内容,若有新内容立即替换或下次访问时替换。但缓存使用也要注意“度”,过大的缓存文件占用太多的系统空间,会让用户一怒之下卸载APP。
四、界面先行,网络交互随后
对于一些数据量很小,且失败可能性较小的网络交互,用户并不需要明确知道APP在干这些事情,也能够顺畅地使用APP,那么我们就应该“把一些事实掩盖起来”,即界面上听话地、迅速地完成任务,程序后台默默地继续执行任务(实现模型)。
最常用的比如QQ、微信、易信等聊天界面。点击发送后,消息立即”飞”到聊天上下文中,其实对方还没收到。但这样的设计让沟通的过程更顺畅,没有“正在发送 –
发送成功”各种过程的干扰。
五、预测用户行为,提前开始任务
用户在某个界面停留的时候,预测下一步可能做ABC三个任务,系统于是把这些任务都提前做完。当用户做出选择比如A时,界面可以迅速响应,并且同时把BC两个任务从内存中清空掉以节省资源。当然,这种会花费用户的额外浏览。
参考资料:优化app速度的几个方法 http://www.studyofnet.com/news/926.html
这是一条很通用,也容易理解的方法。用户不会愿意盯着进度条傻傻地等待,除了“取消”没有其他选择。在系统处理一些网络任务的时候,完全可以允许用户做一些其他的事情。
[b]二、在载入前显示内容[/b]
客户端与web的一个不同点,客户端的显示内容包括本地数据和网络数据两部分。在设计界面时,将更多的信息放在本地,在网络数据未载入时即显示本地数据,让用户产生一种“已经载入一半了”的错觉,即使最终的耗时一样,心理感受也会更快。当然把数据过多地写在本地,会牺牲一些灵活性,需要根据具体情况考虑。
三、充分利用好缓存
缓存可以把网络数据保存在本地,下次打开时无需要再次向网络请求,减少流量并减少等待时间。在设计时,可以先显示缓存内容,同时后台到网络上拉取新内容,若有新内容立即替换或下次访问时替换。但缓存使用也要注意“度”,过大的缓存文件占用太多的系统空间,会让用户一怒之下卸载APP。
四、界面先行,网络交互随后
对于一些数据量很小,且失败可能性较小的网络交互,用户并不需要明确知道APP在干这些事情,也能够顺畅地使用APP,那么我们就应该“把一些事实掩盖起来”,即界面上听话地、迅速地完成任务,程序后台默默地继续执行任务(实现模型)。
最常用的比如QQ、微信、易信等聊天界面。点击发送后,消息立即”飞”到聊天上下文中,其实对方还没收到。但这样的设计让沟通的过程更顺畅,没有“正在发送 –
发送成功”各种过程的干扰。
五、预测用户行为,提前开始任务
用户在某个界面停留的时候,预测下一步可能做ABC三个任务,系统于是把这些任务都提前做完。当用户做出选择比如A时,界面可以迅速响应,并且同时把BC两个任务从内存中清空掉以节省资源。当然,这种会花费用户的额外浏览。
参考资料:优化app速度的几个方法 http://www.studyofnet.com/news/926.html
相关文章推荐
- Swift第三课 分支语句 if else for forin switch while do-while
- 非常详细的Android开发环境搭建教程
- iOS 判断一断代码的执行时间(从网上看的,自己实现一下)
- iOS nonatomic,atomic效率测试—(yaoyao)
- [转]Android Matrix利用invert实现逆向坐标映射
- iOS BLOCK回调:(妖妖随笔)
- 安装android studio报错Failed to install Intel HAXM
- iOS开发 创建自己的UserAgent
- IOS的LaunchImage和AppICon的尺寸
- autocad application 版本
- Crazy android书中使用intent建立Tab Page的例子
- Swift 2.0学习笔记(Day 13)——数据类型之整型和浮点型
- swift2.0 Cannot assign a value of type '[CFString]' to a value of type '[String]'
- Github上600多个iOS开源项目
- Android调用系统相册和拍照的Demo
- Android调用系统相册和拍照的Demo
- iOS开发 跳转到系统对应app设置(ios8)
- 使用Chrome来调试你的Android App
- android:protectionlevel的不同类型
- Toggle开关