zoukankan      html  css  js  c++  java
  • indexedDB简单例子

    <!DOCTYPE html>
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
    <meta name="viewport" content="width=device-width, initial-scale=1" />
    <title>HTML5 - IndexedDB</title>
    <script type="text/javascript">
    var db;
    var request;
    var objectStore;
    function _create(dbName){
        request=indexedDB.open(dbName,1);
        
        request.onerror = function () {
               alert("打开数据库失败:"+event.target.message);
        }
        request.onsuccess = function (event) {
            alert("打开数据库成功!");
               db=event.target.result;
               var transaction = db.transaction(["info"], "readwrite");
               objectStore = transaction.objectStore("info");
        } 
        request.onupgradeneeded = function(event) {
               alert("版本变化!");
               db = event.target.result;
               objectStore = db.createObjectStore("info", {keyPath: "userId",autoIncrement: true});
         }
    }
       
    function _delete(dbName){
        try{
               request=indexedDB.deleteDatabase(dbName);
               request.onerror = function () {
                   alert("删除数据库失败:"+event.target.message);
            }
            request.onsuccess = function (event) {
                alert("删除数据库成功!");
            } 
        }catch(e){
           alert(e.getMessage);
        }
    }
     
    function _get (argument) {
        var p=document.getElementById("display");
        p.innerHTML="";//获取数据前先清理一下页面已显示的数据
        if(!db){
            alert("请打开数据先!");
            return false;
        }
        var store = db.transaction("info").objectStore("info");
        var keyRange = IDBKeyRange.lowerBound(0);//规定keyRange从0开始
        var cursorRequest = store.openCursor(keyRange);//按照keyRange的设置开启游标
     
        cursorRequest.onsuccess = function (e) {
     
            var result = e.target.result;
     
            if (!!result == false)
                return;
     
            _render(result.value);
            result.continue();//这边执行轮询读取
        };
     
        cursorRequest.onerror = function (e) {
            alert("数据检索失败!");
        };
     
    }
     
    function _render (e) {
        var p=document.getElementById("display");
        p.innerHTML+="姓名:"+e.name+" 年龄:"+e.age+" 性别:"+e.xb+"<br />";
    }
     
    function _add (argument) {
        var name=document.getElementById("name").value;
        var age=document.getElementById("age").value;
        var xb,flag=document.getElementById("nan").checked;
        if(flag)
            xb="";
        else
            xb="";
        var detail={
            name:name,
            age:age,
            xb:xb
        }
        if(!db){
            alert("请打开数据先!");
            return false;
        }
           var transaction = db.transaction(["info"], "readwrite");
        objectStore = transaction.objectStore("info");
        objectStore.add(detail);
        alert("添加成功!");
    }
    </script>
    </head>
    <body>
        <small>添加前请先打开数据库(如数据库不存在则执行创建过程)</small><br /><br />
        <button onClick="_create('user')">打开数据库</button>
           <button onClick="_delete('user')">删除数据库</button><br /><br />
        姓名:<input type="text" id="name"><br />
        年龄:<input type="number" id="age" min=1><br />
        性别:<br />
              男:<input type="radio" id="nan" name="xb" value="male" checked>
              女:<input type="radio" id="nv" name="xb" value="female"><br />
        
        <button onClick="_add()">添加数据</button>
        <button onClick="_get()">获取数据</button><br />
        <p id="display"></p>
        
    </body>
    </html>
  • 相关阅读:
    编程语言 编译型语言与解释型语言及汇编语言
    Alpha冲刺2
    事后诸葛亮
    Alpha阶段项目复审
    PostgreSQL的表膨胀与Vacuum和Vacuum Full
    PostgreSQL查看表膨胀(对所有表进行膨胀率排序)
    python中from __future__ import division/print_function的用法
    【IT企业笔试集】2013年阿里巴巴实习生招聘笔试题目及解答
    【WPF编程】一个未完成的12306本地客户端的源代码
    【深入理解计算机系统第二版】3.55习题
  • 原文地址:https://www.cnblogs.com/henuyuxiang/p/14690789.html
Copyright © 2011-2022 走看看