web storage 之留言板

Posted 水晶草

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了web storage 之留言板相关的知识,希望对你有一定的参考价值。

浏览器支持

 IE8+,Firefox 28.0+,chrome 33.0+,Safari 7.0+。

先来了解几个js的问题。

JSON.parse() 和 JSON.stringify()

parse用于从一个字符串中解析出json对象,如

var str = ‘{"name":"huangxiaojian","age":"23"}‘

结果:

JSON.parse(str)

Object
  1. age"23"
  2. name"huangxiaojian"
  3. __proto__Object

 stringify()用于从一个对象解析出字符串,如

var a = {a:1,b:2}

结果:

JSON.stringify(a)

"{"a":1,"b":2}"

存储数据

用 web storage 做数据库检索的时候可以用用到。如果存入多个数据可以创建 object 对象,然后把所获取的value 值也就是字符串分别赋给创建的对象的自定义属性。私有的对象也受到保护。

例子1:

 function iocalStorage(id) {
           var obj=new Object;
        obj.name=document.getElementById("name").value;
        obj.email=document.getElementById("email").value;
        obj.tel=document.getElementById("tel").value;
        obj.memo=document.getElementById("memo").value;
        var str=JSON.stringify(obj);
        localStorage.setItem(obj.name, str);
        alert("你好已保存");
        //readiocalTwo(‘iocal_msg‘); 读取内容
        
        //readiocalThree(‘iocal_msg‘);//检索内容
        
        //readiocalFour(id)//检索内容
    } 


<div class="box">
    <ul>
        <li><span>姓名:</span> <input class="txt" type="text"  id="name"></li>
        <li><span>EMIL:</span> <input class="txt" type="text" id="email"></li>
        <li><span>电话号码:</span> <input class="txt" type="text" id="tel"></li>
        <li><span>备注:</span> <input class="txt" type="text" id="memo"></li>
    </ul>
   <div class="bottom">    
     <input type="button" value="保存数据" class="btn" onclick="iocalStorage(‘iocal_input‘)">
   </div>

</div>

 

检索数据

 第一种读取方式: 全部读取,通过循环key值输出

//读取根据key function readiocal(id) { var traget = document.getElementById(id); var msg = localStorage.getItem("message"); for(var i=0;i<localStorage.length;i++) { var key=localStorage.key(i); traget.innerhtml+=key+":"+localStorage.getItem(key)+"<br/>"; } } html部分: <input type="button" class="fl btn" value="检索数据" onclick="readiocal(‘iocal_msg‘)"> <p id="iocal_msg"> <p>

 第二种读取方式: 读取根据ID 根据输入的key值 找出匹配的整条数据

 //读取根据ID
    function readiocalTwo(id) {
        var traget = document.getElementById(id);
        var findTxt =document.getElementById("find").value;
        var msg=localStorage.getItem(findTxt);//根据输入的值检索
         traget.innerHTML+=msg+"<br/>";
        
    }

html:

<div class="box">
<div class="jiansuo">
    <span class="fl">检索:</span><input id="find" type="text" class="txt fl"> <input type="button" class="fl btn" value="检索数据" onclick="readiocal(‘iocal_msg‘)">
   </div>
    <p id="iocal_msg">

    <p>

</div>

输出形式的控制 通过 JSON.parse() 把字符串转化为对象。

 //检索 根据输入ID框的value值
    function readiocalFour(id) {
        
        var traget = document.getElementById(id);
        traget.innerHTML="";
        var findTxt =document.getElementById("find").value;
        var obj=localStorage.getItem(findTxt);
        var data=JSON.parse(obj);
        var reslut="姓名 "+data.name+"<br>";
            reslut+="EMIl "+data.email+"<br>";
            reslut+="tel "+data.tel+"<br>";
            reslut+="memo "+data.memo+"<br>";
            
        var msg=localStorage.getItem(findTxt);//
         traget.innerHTML+=reslut+"<br/>";
    }
<div class="box">
 <div class="jiansuo">
    <span class="fl">检索:</span><input id="find" type="text" class="txt fl"> <input type="button" class="fl btn" value="检索数据" onclick="readiocalTwo(‘iocal_msg‘)">
   </div>
    <p id="iocal_msg">

    <p>
</div>

 

 

 

以上是关于web storage 之留言板的主要内容,如果未能解决你的问题,请参考以下文章

Html5本地存储之Web Storage

H5 基于Web Storage 的客户端留言板

web storage 简单的网页留言版

web storage 离线存储

协议实验室推出Web3.Storage,让Filecoin存储更简单易用

web storage有啥用