哲
  • 发布:2018-03-28 12:06
  • 更新:2019-04-03 04:22
  • 阅读:7251

强烈建议H5+扩展集成SQLite,iOS下HTML5标准中的websql无法替代

分类:HTML5+

  官方对于H5+规范的定制实施也有好几个年头了,5+Runtime也从刚开始的千疮百孔到现在的逐步成熟,虽然现在也存在不少Bug以及各种坑,不过随着版本的不断迭代和同志们长期以来练就的各种填坑能力,可以肯定的说目前通过H5+做出一定水准App绝对没有问题,绝大多数小Bug小毛坑都可以通过绕过和变通的方式搞定。

  但是,但是,但是,

  目前H5+没有集成SQLite可能是最大的硬伤,对于不需要用到本地关系型数据库的App纵然没有多大问题,但是对于部分项目而言,需要使用本地关系型数据库来进行存储操作却又是刚需啊。

  也许会说,储存这块,看看这个文档:http://ask.dcloud.net.cn/article/166(App离线本地存储方案), HTML5标准方案:cookie、localstorage、sessionstorage、websql、indexedDB, 以及 HTML5Plus扩展方案:plus.navigator.setCookie、plus.storage、plus.io 这些等等,要使用关系型数据库你可以使用 websql 啊,或者网络数据库啊,H5+没有必要再重复制造轮子。

但我认为这个轮子是否还得考虑补充一个,理由如下:

1、HTML5标准方案对于iOS而言有个致命问题,那就是iOS存储空间较低的时候会清除掉H5+ App应用内的HTML5本地离线存储数据,而且是非常频繁的不定时的清除,让你没点脾气,不知道有什么办法可以让iOS不要清除,如果App使用了websql来存储数据,没有办法,分分钟让你难堪,总不能跟用户说要用我的App,请你保证你的苹果手机有足够的存储空间吧。
2、对于H5+而言,既然 plus.navigator.setCookie、plus.storage、plus.io 这些都加了,应该也不吝啬再加个比如 plus.sqlite 了吧,毕竟很多时候我们非常需要一个稳定可靠的本地关系型数据库的作为本地存储方案。
3、H5+的出现本来就是为了广大前端同志们的对于原生开发的痛点问题,所以使用 native.js 或插件之类的其他方式来解决本地关系型数据库的存储问题也不科学。

  综上所述,强烈建议H5+增加集成SQLite为本地存储方案提供一个稳定可靠的关系型数据库,未来官方的重点演进方向在UniApp和wap2app,希望不要那么早就放弃HTML5+吧。

2018-03-28 12:06 负责人:无 分享
已邀请:

最佳回复

DCloud_heavensoft
哲

(作者)

鉴于官方已经明确表示h5+的webview里不会集成sqllite了,看来目前只能用plus.storage来替代SQLite了,在此分享一个自己对plus.storage进行简单封的js,小规模的记录数基本可以替代SQLite,欢迎指正

https://github.com/rihillver/Storagex

  • (作者)

    因为原生cookie、localstorage、sessionstorage、websql、indexedDB的在iOS存储空间较低的时候会清除掉,上面这个主题的痛点就在于此

    2018-04-01 17:51

  • uniapp视频教程

    回复 老哥教教我:你可以下载"枫桥居app"我的app就经常被ios清空缓存(当空间不足5G的时候就会自动清理)

    2018-04-03 10:41

哲

(作者)

刚需啊,顶一下

诗小柒

诗小柒

顶一下。。。。

回梦無痕

回梦無痕 - 暂停服务

你说的太对了,我举双手资瓷。
我是用了本地文件方式储存数据的,就是在私有文档目录下建立文件,然后读写这些文件即可达到本地储存数据不被清除,就是麻烦了一点(效率也很低),并且,如果数据量巨大,为了保持效率,自己还要建立索引。。。。。。

DCloud_heavensoft

DCloud_heavensoft

感谢各位的认可和真诚建议。UniApp里会有相关计划。

  • uniapp视频教程

    我的手机现在就是天天不定期的清除html5的离线缓存,app存储的所有东西都丢失了,没半点脾气,怪我穷买不起大容量的iPhone(当初为了追求性能的极致尽量都用html5的存储,后悔啊~)

    2018-03-28 22:05

  • 健健

    storage比localstorage稳定,localstorage比storage效率高 现在关键信息 还是要采用storage了

    2018-03-29 10:01

ZeroWinNing

ZeroWinNing

这个一定要顶啊,确实是刚需,没有SQLite就是我不用H5+的原因

蓓岑2015

蓓岑2015

看得我泪流满面啊,H5+集成 SQLite,确实是刚需。

哲

(作者)

这些绝望了,接下来可能就得真的要靠UniApp接下大棒,但是uniApp现在才刚推出,没个一两年能成熟商用吗

  • DCloud_heavensoft

    不是这样的。UniApp是5+的升级,5+的api除了webview和nview被替代,其他都可以用。所以UniApp不是一个全新的项目,它并不需要多长时间成熟。

    2018-03-28 21:13

uniapp视频教程

uniapp视频教程 - https://www.uni-app.cn/ (枫桥居 uni-app视频教程)

这位仁兄的观点就是我的观点,我都呼吁了好几年了~有句话说的非常好:既然 plus.navigator.setCookie、plus.storage、plus.io 这些都加了,应该也不吝啬再加个比如 plus.sqlite 了吧~

不过,我已经放弃html5+开发app了,所以也不关心html5+会不会支持,但我非常非常希望uniapp能支持,以后肯定是用uniapp开发

得推网络科技

得推网络科技 - PHP全栈开发,需要外包可以@我

sqlite 不是浏览器都默认支持的吗????

1***@qq.com

1***@qq.com

sqlite这个真的是让我对H5+又爱又恨啊,有的场景下是真的需要这个得,都想自己去写这一块得插件了

  • 深海智行

    你写了吗?我已经写好了,支持iOS和安卓,有需要可以联系我。

    2018-07-07 09:43

深海智行

深海智行 - 专注前端培训

可以离线集成,有需要的联系我。

该问题目前已经被锁定, 无法添加新回复