cordova性能优化方法
做了几个cordova的项目,觉得webapp性能的确是比不上原生,在IOS上还好,安卓上特别的明显.技术群里面很多人都在说cordova是个渣,没用之类的.其实只是很多人没有深入去了解,做点小优化,一般的增删改查APP还是完全能够满足性能要求的.
1.有条件可以自己做UI,不要用框架.用框架的话不要用jquery mobile,用sencha touch或者jqmobi(app framework)
2.不要在服务器生成UI,在本地生成.
3.前端尽量少在DOM上插入,删除显示的元素.
4.把页面切换特效关掉,安卓上很多白屏就是这样出现的.
5.避免网络请求,可以用LocalStorage,sqlite数据库,文件等保存在本地.
6.为数据使用本地缓存,如开启ajax的缓存.
7.限制结果集的高度和宽度
8.不要让界面等数据,先加载界面,再加载数据.如CSS跟html写前面,JS写后面.ajax异步等等.
9.所有的动画用CSS的转换和硬件加速,性能会好很多.
10.使用本地的滚动条,用插件的话,卡出翔!
#scroller {
overflow: auto;
-webkit-overflow-scrolling: touch;
position: absolute;
top: 48px;
bottom: 0px;
left: 0px;
right: 0px;
}
11.避免用click触发,因为会有300毫秒的延迟,直接用touch触发.
12.优化图片,为每一个元素设置一个图片的src是很慢的.直接用CSS Sprite Sheets,在很多图片的APP里面效果明显.
13.图片的大小要跟html的容器相适应.
14.不要用阴影和梯度,特别在安卓手机上,阴影渲染的代价太大了.其他还有文字对齐和边界半径.
15.减少回流.减少DOM的数量,减少DOM访问,避免用js调整布局,全部用CSS来完成.
16.没用到的框架,不要傻乎乎的全引用进来,搞清楚你需要哪些,不需要的就别加载了,加载是要时间的,特别在手机浏览器上,特别明显.
17.通过开发者工具来调试,看什么东西占用的时间最多,再有目的的优化.
cordova性能优化方法的更多相关文章
- DevExpress ChartControl大数据加载时有哪些性能优化方法
DevExpress ChartControl加载大数据量数据时的性能优化方法有哪些? 关于图表优化,可从以下几个方面解决: 1.关闭不需要的可视化的元素(如LineMarkers, Labels等) ...
- Linux 下网络性能优化方法简析
概述 对于网络的行为,可以简单划分为 3 条路径:1) 发送路径,2) 转发路径,3) 接收路径,而网络性能的优化则可基于这 3 条路径来考虑.由于数据包的转发一般是具备路由功能的设备所关注,在本文中 ...
- HBase性能优化方法总结(转)
本文主要是从HBase应用程序设计与开发的角度,总结几种常用的性能优化方法.有关HBase系统配置级别的优化,这里涉及的不多,这部分可以参考:淘宝Ken Wu同学的博客. 1. 表的设计 1.1 Pr ...
- (摘录)26个ASP.NET常用性能优化方法
数据库访问性能优化 数据库的连接和关闭 访问数据库资源需要创建连接.打开连接和关闭连接几个操作.这些过程需要多次与数据库交换信息以通过身份验证,比较耗费服务器资源. ASP.NET中提供了连接池(Co ...
- HBase性能优化方法总结(一):表的设计
本文主要是从HBase应用程序设计与开发的角度,总结几种常用的性能优化方法.有关HBase系统配置级别的优化,可参考:淘宝Ken Wu同学的博客. 下面是本文总结的第一部分内容:表的设计相关的优化方法 ...
- 26个ASP.NET常用性能优化方法
数据库访问性能优化 数据库的连接和关闭 访问数据库资源需要创建连接.打开连接和关闭连接几个操作.这些过程需要多次与数据库交换信息以通过身份验证,比较耗费服务器资源. ASP.NET中提供了连接池(Co ...
- redmine在linux上的mysql性能优化方法与问题排查方案
iredmine的linux服务器mysql性能优化方法与问题排查方案 问题定位: 客户端工具: 1. 浏览器inspect-tool的network timing工具分析 2. 浏览 ...
- [原创]浅谈H5页面性能优化方法
[原创]浅谈H5页面性能优化方法 前阶段公司H5页面性能测试,其中测试时也发现了一些性能瓶颈问题,接下来我们在来谈谈H5页面性能优化,仅仅是一些常用H5页面性能优化措施,其实和Web页面性能优化思路大 ...
- .NET 性能优化方法总结==转
.NET 性能优化方法总结 目录 目录 1. C#语言方面... 4 1.1 垃圾回收... 4 1.1.1 避免不必要的对象创建... 4 1.1.2 不要使用空析构函数 ★... 4 1.1.3 ...
随机推荐
- main.js 里的/* eslint-disable no-new */
注意项目中的这个,它的作用是: 在js里面,new 一个对象,需要赋值给某个值(变量),用Vue实例化的时候,不需要赋值给值(变量),所以要单独给配一条规则,给new Vue这行代码上面加这个注释,把 ...
- VS2013 "当前不会命中断点.还没有为该文档家在任何符号" 解决办法
参考:http://blog.csdn.net/u010797208/article/details/40452797 亲测可行
- AdvStringGrid 标题头 加粗的问题
当AdvStringGrid1.RowCount = 1的时候,会是下面这样: 当AdvStringGrid1.RowCount = 2 时 才是正确的:
- python3 + selenium 运行过程中进行截图
使用driver.get_screenshot_as_file方法("D:/aaac.png")括号中为需要存放的路径及图片名称 from selenium import webd ...
- JS基础:(一)
开发了很多项目,感觉javascript脚本语言用处太大了,所以,把一些心得写出来,尤其是调试的技巧. 本次开发工具:Webstorm 1. 官网:http://www.jetbrains.com/ ...
- 安装ipython和jupyter
本节内容: 安装ipython 安装jupyter Pycharm介绍 Python软件包管理 一.安装ipython 1. python的交互式环境 2. 安装ipython 可以使用pip命令 ...
- poj 2406 求字符串中重复子串的个数
Sample Input abcdaaaaababab.Sample Output 1 //1个abcd4 //4个a3 //3个ab #include<stdio.h> #include ...
- 使用gunicorn将django项目部署到生产环境的子目录下,在nginx后端获取客户真实IP地址
生产环境有时,并不是为了一个项目而存在的.毕竟,域名是比较稀有的. 今天遇到这个问题,解决了.作个记录. 并且,如果将django项目部署在Nginx后面,那如何获取用户真实的IP地址呢? 下面就来解 ...
- vue2.0组件传值
props down emit up 嘿嘿 如果是第一次接触vue2.0组件传值的肯定很疑惑,这是什么意思(大神总结的,我也就是拿来用用) “down”—>指的是下的意思,即父组件向子 ...
- 【Java】 剑指offer(38) 字符串的排列
本文参考自<剑指offer>一书,代码采用Java语言. 更多:<剑指Offer>Java实现合集 题目 输入一个字符串,打印出该字符串中字符的所有排列.例如输入字符串ab ...