95后码农——H5本地存储之Database Storage 刷新了页面数据不会丢失

可以实现简单的本地储存,刷新了页面数据不会丢失

1、HTML代码如下:
<body onload="loadAll()">
<div class="addDiv">
    <label for="user_name">数据一:</label>
    <input type="text" id="user_name" name="user_name" class="text"/>
    <br/>
    <label for="mobilephone">数据二:</label>
    <input type="text" id="mobilephone" name="mobilephone"/>
    <br/>
    <label for="mobilephone">数据三:</label>
    <input type="text" id="company" name="company"/>
    <br/>
    <input type="button" onclick="save()" value="新增"/>
</div>
<br/>
<div id="list">
</div>
</body>
2、css部分:可以参考,也可以按照自己喜欢的样式来进行编写。
.addDiv{
            border: 2px dashed #ccc;
            width:400px;
            text-align:center;
        }
th {
            font: bold 11px "Trebuchet MS", Verdana, Arial, Helvetica, sans-serif;
            color: #4f6b72;
            border-right: 1px solid #C1DAD7;
            border-bottom: 1px solid #C1DAD7;
            border-top: 1px solid #C1DAD7;
            letter-spacing: 2px;
            text-transform: uppercase;
            text-align: left;
            padding: 6px 6px 6px 12px;
        }
td {
            border-right: 1px solid #C9DAD7;
            border-bottom: 1px solid #C9DAD7;
            background: #fff;
            padding: 6px 6px 6px 12px;
            color: #4f6b72;
        }
3、JavaScript部分:编辑功能的函数还在写,写完后后期会补上。
//打开数据库
var db = openDatabase('contactdb','','local database demo',204800);

//保存数据
function save(){
    var user_name = document.getElementById("user_name").value;
    var mobilephone = document.getElementById("mobilephone").value;
    var company = document.getElementById("company").value;
    //创建时间
    var time = new Date().getTime();
    db.transaction(function(tx){
        tx.executeSql('insert into contact values(?,?,?,?)',[user_name,mobilephone,company,time],onSuccess,onError);
    });
}
//sql语句执行成功后执行的回调函数
function onSuccess(tx,rs){
    log("操作成功");
    loadAll();
}
//sql语句执行失败后执行的回调函数
function onError(tx,error){
    log("操作失败,失败信息:"+ error.message);
}
//将所有存储在sqlLite数据库中的联系人全部取出来
function loadAll(){
    var list = document.getElementById("list");
    db.transaction(function(tx){
        //如果数据表不存在,则创建数据表
        tx.executeSql('create table if not exists contact(name text,phone text,company text,createtime INTEGER)',[]);
        //查询所有联系人记录
        tx.executeSql('select * from contact',[],function(tx,rs){
            if(rs.rows.length>0){
                var result = "<table>";
                result += "<tr><th>序号</th><th>数据一</th><th>数据二</th><th>数据三</th><th>创建时间</th><th>操作</th></tr>";
                for(var i=0;i<rs.rows.length;i++){
                    var row = rs.rows.item(i);
                    //转换时间,并格式化输出
                    var time = new Date();
                    time.setTime(row.createtime);
                    var timeStr = time.format("yyyy-MM-dd hh:mm:ss");
                    //拼装一个表格的行节点
                    result += "<tr><td>"+(i+1)+"</td><td>"+row.name+"</td><td>"+row.phone+"</td><td>"+row.company+"</td><td>"+timeStr+"</td><td><input type='button' value='编辑' οnclick='update()'/><input type='button' value='删除' οnclick='del("+row.phone+")'/></td></tr>";
                }
                list.innerHTML = result;
            }else{
                list.innerHTML = "暂无数据";
            }
        });
    });
}
Date.prototype.format = function(format)
{
    var o = {
        "M+" : this.getMonth()+1, //month
        "d+" : this.getDate(),    //day
        "h+" : this.getHours(),   //hour
        "m+" : this.getMinutes(), //minute
        "s+" : this.getSeconds(), //second
        "q+" : Math.floor((this.getMonth()+3)/3),  //quarter
        "S" : this.getMilliseconds() //millisecond
    }
    if(/(y+)/.test(format)) format=format.replace(RegExp.$1,
        (this.getFullYear()+"").substr(4 - RegExp.$1.length));
    for(var k in o)if(new RegExp("("+ k +")").test(format))
        format = format.replace(RegExp.$1,
            RegExp.$1.length==1 ? o[k] :
                ("00"+ o[k]).substr((""+ o[k]).length));
    return format;
};
//删除联系人信息
function del(phone){
    db.transaction(function(tx){
        //注意这里需要显示的将传入的参数phone转变为字符串类型
        tx.executeSql('delete from contact where phone=?',[String(phone)],onSuccess,onError);
    });
}
//编辑联系人信息
function update(){

}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值