作家
登录

前端与SQL

作者: 来源: 2017-06-12 12:11:58 阅读 我要评论

  •     for(var i = 0; i < orders.length; i++){ 
  •         orderStore.add(orders[i]);          //add是一个异步的操作,返回一个IDBRequest,有onsucess    } 
  • 履行完之后就有了一张order_data的表,如下所示:

    —如今要萌芽某个orderId的数据,可履行以下代码:

    1. function query(orderId){ 
    2.     db.transaction("order_data""readonly") //IDBTransaction      .objectStore("order_data")             //IDBObjectStore      .get(orderId)                          //IDBRequest      .onsuccess = function(event){ 
    3.           var order = event.target.result; 
    4.           console.log(order
    5.     }; 

    结不雅如下图所示:

    1. — select order_id from order_data where order_id = ${order.orderId} 

    怎么萌芽value字段琅绫擎的数据呢?如要萌芽state为CA的订单,那么给state这个字段添加一个索引就可以萌芽 了,如下所示:

    这里就可以知道,为什么要叫IndexedDB或者索引数据库了,因为它主如果经由过程创建索引进行萌芽的。

    膳绫擎只返回了一个结不雅,然则一般须要获取全部的结不雅,就得应用游标cursor,如下代码所示:

    IndexedDB还支撑插入json格局不一样的数据,如下代码:

    1. insert into student(grade, score) values(5, 88); 

    (2)非关系型数据库的横向扩大

    膳绫擎说关系型数据库晦气于横向扩大,而在一般的非关系型数据库琅绫擎,每个数据存储的类型都可以不一样,即每个key对应的value的json字段格局可以不一致,所以不存在添加字段的问题,而雷同类型的字段可以创建索引,进步萌芽效力。

    (3)兼容性

    插入一个反复主键,这里为id,executeSql的掉败函数将会履行,如下所示:

    WebSQL兼容性如下caniuse所示:

    主如果IE和火狐不支撑,而IndexedDB的兼容性会好很多:

    8. 数据库与Promise

    —数据库的查找,添加等都是异步操作,有时刻你可能须要先发个请求获取数据,然后插入数据,反复N次之后,再萌芽数据。例如我须要先一条条地向谷歌办事器解析地址,再插入数据库,然后再做萌芽。在萌芽数据之前须要包管数据已经都全部写到数据库琅绫擎了,可以用Promise解决,在包管效力的同时达到目标。如下代码所示:


      推荐阅读

      司法大数据 助力社会治理

    人平易近法院大年夜数据治理和办事平台已经汇聚了全公法院1.08亿件案件信息,成为全世界最大年夜的审判信息资本库。在聪明法院扶植中,发掘这些司法大年夜数据的潜在价值,应用云计算等技>>>详细阅读


    本文标题:前端与SQL

    地址:http://www.17bianji.com/lsqh/35701.html

    关键词: 探索发现

    乐购科技部分新闻及文章转载自互联网,供读者交流和学习,若有涉及作者版权等问题请及时与我们联系,以便更正、删除或按规定办理。感谢所有提供资讯的网站,欢迎各类媒体与乐购科技进行文章共享合作。

    网友点评
    自媒体专栏

    评论

    热度

    精彩导读
    栏目ID=71的表不存在(操作类型=0)