吐槽:WebSQL数据库,多好的一个东西,FF非要不支持!

 

上午想搞一个QQ音乐播放器,研究了半天,最终确认,官方的API有各种限制(VIP的不能播、纯享版的不能播)

然后就想自己抓取、自己实现吧。

既然自己实现的话,那就得考虑,这个播放器的功能极限到哪里?

比如说,可以让用户在浏览器上【记住这个选择】(默认不播放、或者从默认列表里面删除自己不喜欢的歌曲)。

众所周知,在浏览器里面定入数据,是可以用cookies的,然后cookies又有容量限制。(虽然说大多数情况下,存储的数据不能达到cookies的上限,但也不是没有,比如说,我到在某个“段子”网站上,看多了段子以后,cookies溢出,网站开始给我发重复的段子)

然后我就想起了WebSQL好像是浏览器支持不好。当时我是花了3、4天的时间,封装了一套存储和操作的JS类,通过WebSQL保存我要的数据(具体功能,好像是缓存广告图片)。最终测试的时候发现,有的浏览器不支持WebSQL.

所以,这次,我打开了几个常有的浏览器,再去百度看看哪个支持得广泛一些。

 

好吧。IndexedDB支持得多。

找来文档看看——什么?全是异步操作?!

异步不是好,但是,异步操作往往会把前后相关的业务逻辑冲得稀碎。C#里面,针对多个异步操作有WhenAll()封装,但是JS里面没有,得自己重新实现。而且就算封装完了,也不一定有用。因为有的逻辑要条件1,2,3,4全成功才行。有的逻辑只要1,3,4成功就可以。有的逻辑1,3当中可以有一个是失败的。全都写在异步就是灾难。

看了一会文档,我又看了一眼Example,竟然不同的浏览器采的是不同的实现:

window.indexedDB = window.indexedDB || window.mozIndexedDB || window.webkitIndexedDB || window.msIndexedDB;

反正百度出来一堆的东西,看看别的页面吧。其中有一个是:

《Firefox:浏览器内置数据库之路》

原来,是Firefox这伙人非要“格色”:我就是不想支持WebSQL,然后还鼓动微软也这么干。

阮一峰的博客上也说:“就数据库类型而言,IndexedDB 不属于关系型数据库(不支持 SQL 查询语句),更接近 NoSQL 数据库。”

也就是说FF在W3C上说,WebSQL这东西不好,然后IndexedDB 会更好。结果,IndexedDB 弄出来以后,竟然没有SQL?!!

这世界不只是NoSQL一种需求好么?更多的时候是SQL查询好不好?难道说多列筛选再加上排序,我还得发回Server?

就冲WebSQL,我就想骂FF一万遍!

难怪后来微软放弃自家IE的内核之后转换了Webkit。FF的人现在竟然这么不靠谱。(对了,听说FF要把图标上的小狐狸给拿掉,迷之操作。)

 

 

官方API:

https://y.qq.com/m/api/open/index.html

 

posted @ 2021-04-20 14:16  柳城之城  阅读(415)  评论(0编辑  收藏  举报