zoukankan      html  css  js  c++  java
  • 吐槽: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

    流浪是注定的宿命;
    漂泊是无尽的轮回。
  • 相关阅读:
    JDBC---bai
    下拉列表---demo---bai
    智能提示框---bai
    国际化---demo1---bai
    自定义数据校验(4)---demo3---bai
    数据校验(3)--demo2---bai
    json概述
    redis持久化
    MyBatis中动态SQL语句完成多条件查询
    Jedis连接redis的一些基本操作
  • 原文地址:https://www.cnblogs.com/xpnew/p/14680849.html
Copyright © 2011-2022 走看看