项目介绍

pheongap混合应用,跨平台,做应用加工厂提供应用模板编辑器~

本地应用,完全是模拟IOS,安卓原生应用的实现,所以支持14种手势,所有PPT动画,视觉差效果,等等功能组合。。。

这是IDE的功能设置

HTML5本地数据库就是用SQLite,这是我们应用的数据库

通过数据动态生成页面

这个应用有30页,有些应用上千页,所以页面全是动态生成的,只会维持在2-3页,

这里用到了模拟多线程任务 - - ,用于实现无缓冲翻页,效果还是不错


一个页面涉及N多数据的的查询,可能关联很多表,几十上百条记录,如何优化?

数据查询方式

1:sql数据

拼sql语句是不行的,你可以试试一条SQL语句耗费的时间是多少?  基本上1条语句就是100毫秒了,安卓下面实测

现在一个页面就可能存在几百条数据的关联,那么直接通过语句查询是行不通的

2:缓存哈希

通过HTML5的executeSql查询出来的是一个,SQLResultSetRowList 类型的 rows 是数据集的“行”,

rows 有两个属性:length、item ,故获取查询结果的第一行列名为name的值 :result.rows.item(0).name

那么如果缓存数据为哈希的格式,这样就不需要查询数据了,每次找内存中的缓存即可了

就是这样

var data = {}
each(result,function(r,index){data[r.id] = r.item(index);
})

但是忽略一个问题,浏览器分配给每一个应用的内存是有限的,所以这样缓存的表数据一多,内存会溢出,应用直接崩

3:缓存数据集

目前使用的就是html5返回的缓存数据集SQLResultSetRowList了,因为我们可以直接result.rows.item(0) 通过索引下表找到对应的数据

这样只需要算出数据库中每一个id对应的下标索引就可以大大加快查询数据了


目前项目三种都尝试过,目前使用的最后一种数据查找,项目越来越大,这样数据结构的问题也很严峻

如果你有做SPA应用,如果有用HTML5数据交互,希望能帮助到你

移动混合应用HTML5数据查询优化相关推荐

  1. 柴静调查:穹顶之下_调查:HTML5数据列表

    您可能已经在Web上的某处遇到了这种响应: 在输入表单中输入内容时,建议列表会出现在输入内容的底部 . 多年来,我们依靠JavaScript来创建这样的功能. 今天,我们可以使用新的HTML5 < ...

  2. HTML5的数据存储和数据处理的功能有,浅析 HTML5 数据存储的方法及应用

    原标题:浅析 HTML5 数据存储的方法及应用 1 HTML5 本地存储简介 中新增的功能之一是本地,使用本地数据 库可以在客户端本地建立一个数据库,该数据库以前是必须要 保存在服务器端数据库中的内容 ...

  3. 百万数据查询优化技巧三十则,新增5条

    百万数据查询优化技巧三十则 1.对查询进行优化,应尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索引. 2.应尽量避免在 where 子句中对字段进行 null 值判 ...

  4. 混合索引_数据库面试题:查询在什么情况下不?索引-数据库知识点

    查询在什么情况下不⾛索引 数据库面试题 ⾸先,我们可以说通过explain去排查⼀个慢查询,进⽽找到它的索引(参看第五题),当创建索引却不⾛索引时,我们就需要考虑到优化器的问题. 在⼀条单表查询语句真 ...

  5. 精灵混合加密系统_数据安全——混合云的数据备份

    组织在使用混合云进行备份时,可以利用云计算的可扩展性和安全性,而不会影响其内部部署的控制. 混合云是一种复杂的生态系统,可以利用来自公共云和私有云的组件以及内部部署资源.组织出于各种原因实施混合云策略 ...

  6. list筛选数据_Power Query如何对于各类混合格式的数据展开?

    在网抓的过程中,经常会碰到抓回来的数据格式很多都是记录,列表格式,这类格式的数据. 正常来说只需要展开到表格即可,但是转到表后还有类似的混合数据,怎么去展开呢? 这样的数据没有展开符号,怎么样才能快速 ...

  7. html5数据提交到mysql,保存html5画布作为数据到mysql数据库

    这可能是不可能的,它只是非常适合我的情况.我使用html5画布作为幻灯片演示者,用户可以使用它并将其保存到本地机器上.保存html5画布作为数据到mysql数据库 我的目标是改为以某种不同的方式将其保 ...

  8. html5 数据验证,【译】表单数据校验

    当你需要经常在服务器上校验数据时,在Web页面上的另加校验就有诸多好处.多数情况下,用户会被表单惹恼.而当用户填完表单时就校验数据,既有助于用户立即发现他们犯的错误,也能减少等待HTTP响应的时间.并 ...

  9. [转]百万数据查询优化技巧三四则

    1.对查询进行优化,应尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索引. 2.应尽量避免在 where 子句中对字段进行 null 值判断,否则将导致引擎放弃使用索 ...

最新文章

  1. [Spring cloud 一步步实现广告系统] 22. 广告系统回顾总结
  2. 每天6亿人在看《延禧攻略》?大数据告诉你哪家视频网站VIP值得买(附代码)
  3. cyclicbarrier_Java并发– CyclicBarrier示例
  4. 使用了JDK自带的jconsole查看Tomcat运行情况
  5. 2019最新Python爬虫高频率面试题总结(一)
  6. python标准输入_Python 处理标准输入
  7. 节前福利:Java程序员面试宝典升级版
  8. 蓝桥杯 ADV-87 算法提高 利息计算
  9. 开源数字媒体资产管理系统:Razuna
  10. 漫画:谁杀死了MySQL?
  11. Spring Security 原理
  12. 什么是m叉树_C#的λ表达式树(LambdaExpression)保姆级超详细简单入门教程
  13. Excel房贷计算器
  14. oracle remap语句格式,Oracle remap_schema需要注意的问题
  15. 使用rimraf一秒删除node_modules文件夹【亲测有用】
  16. 【码农说码】手撕锟斤拷,彻底搞懂GB2312,GBK,Big5,ASCII,UTF-8,UTF-32的前世今生
  17. Matplotlib坐标轴范围
  18. 深度学习中各种图像库的图片读取方式
  19. sql将日期格式化特定的字符串格式
  20. 动力节点-Servlet-JSP课堂笔记

热门文章

  1. oracle增量备份0级,oracle_linux自动运行rman增量备份脚本,一、增量备份脚本0级备份脚本...
  2. mysql 连接差异_和你一起从 0 实现一个数据库差异对比工具
  3. HTML5+canvas激流勇进网页游戏源码
  4. ARP和RARP报头结构
  5. C# 代码生成器 amp; 网站架构设计
  6. 详细介绍Linux shell脚本系列基础学习(列表)
  7. git-ssh 配置和使用
  8. iPictrue:图片标注提示
  9. linux: sort用法
  10. 人工智障学习笔记——机器学习(8)K均值聚类