编程

当前位置:永利皇宫463登录 > 编程 > 对象到本地

对象到本地

来源:http://www.makebuLuo.com 作者:永利皇宫463登录 时间:2019-09-18 02:12

项目中用到储存点击记录的功能。

js中的json对象

1.JSON(JavaScript Object Notation)一种简单的数据格式,比xml更轻巧。JSON是JavaScript原生格式,这意味着在JavaScript中处理JSON数据不需要任何特殊的API或工具包。
JSON的规则很简单:对象是一个无序的“‘名称:值’对”集合。一个对象以“{”(左括号)开始,“}”(右括号)结束。每个“名称”后跟一个“:”(冒号);“‘名称/值’对”之间使用“,”(逗号)分隔。
规则如下:
1)映射用冒号(“:”)表示。名称:值
2)并列的数据之间用逗号(“,”)分隔。名称1:值1,名称2:值2
3) 映射的集合(对象)用大括号(“{}”)表示。{名称1:值1,名称2:值2}
4) 并列数据的集合(数组)用方括号(“[]”)表示。
[
{名称1:值,名称2:值2},

{名称1:值,名称2:值2}

]
5 )元素值可具有的类型:string, number, object, array, true, false, null

2.json中的五种写法:

1)传统方式存储数据,调用数据

 <script type="text/javascript">
    //JS传统方式下定义"类"
    function Person(id,name,age){
     this.id = id;
     this.name = name;
     this.age = age;    
    } 
    //JS传统方式下创建"对象"
    var p = new Person(20141028,"一叶扁舟",22);

    //调用类中的属性,显示该Person的信息
    window.alert(p.id);
    window.alert(p.name);
    window.alert(p.age);
   </script>

2)第一种样式:

 <script type="text/javascript">
   var person = {
    id:001,
    name:"一叶扁舟",
    age:23
   }
   window.alert("编号:"+person.id);
   window.alert("用户名:"+person.name);
   window.alert("年龄:"+person.age);
   </script>

3)第二种样式:

  <script type="text/javascript">
 var p = [
 {id:001,name:"一叶扁舟",age:22},
 {id:002,name:"无悔",age:23},
 {id:003,name:"无悔_一叶扁舟",age:24}
 ];

   for(var i = 0; i < p.length; i++){
     window.alert("编号:"+p[i].id);
     window.alert("用户名:"+p[i].name);
     window.alert("年龄:"+p[i].age);

   }
   </script>

4)第三种样式:

   <script type="text/javascript">
  var p = {
   "province":[
    {"city":"福州"},
    {"city":"厦门"},
    {"city":"莆田"}
   ]
  };
  window.alert("所在城市:" + p.province[0].city);
   </script>

5)第四种样式:

 <script type="text/javascript">
  var p = {
     "ids":[
   {"id":001},
   {"id":002},
   {"id":003}
   ],
    "names":[
   {"name":"一叶扁舟"},
   {"name":"无悔"},
   {"name":"无悔_一叶扁舟"}
   ]
  };

   for(var i = 0; i < p.names.length; i++){
     window.alert("名字:"+p.names[i].name);

   }
    for(var i = 0; i < p.ids.length; i++){
     window.alert("id:"+p.ids[i].id);
    }

</script>

6)第五种样式:

<script type="text/javascript">
  var p = {
   "province":["福州","厦门","莆田"]  
  };
  window.alert("城市的个数:"+p.province.length);
  window.alert("分别是:n");
  for(var i=0;i

1.JSON(JavaScript Object Notation)一种简单的数据式,比xml更轻巧。JSON是JavaScript原生式,这意味着在JavaScript中处理JSON数据不需要...

ret = new Object();
JSON.stringfy(ret);
ret.toSource();

Lawnchair是一个轻量级的移动应用程序数据持久化存储方案,同时也是客户端JSON文档存储方法,优点是短小,语法简洁,扩展性比较好。现在做HTML5移动应用除了LocalStorage的兼容性比较好之外,SQL web database以及IndexedDB都处在僵局中,虽然有人叫嚣着“我们应该干掉 LocalStorage API”,但那是后话,现在也没得选择。Lawnchair有个曾经的官网:

其API汇总

keys //返回存储对象的所有keys

save (obj, callback)//保存一个对象

batch(array, callback)//保存一组对象

get (key|array, callback)//获取一个或者一组对象,然后调用callback处理

exists (key, callback)//检查是否存在key,并将结果的布尔值(true/false)传递给callback函数

each//遍历集合,将传递给callback函数

all //将所有对象放在一个数组返回

remove (key|array, callback)//移除一个或者一组元素。

nuke //销毁所有

初始化方法 参数中必须有一个函数作为回调函数,哪怕是空。

var store = new Lawnchair({name:'test'}, function;或者var store = new Lawnchair(function;

option默认为空对象,有三个可选属性

option = { name://相当于表名 record:// adapter://存储类型}

save (obj, callback)//保存一个对象

保存形式为对象,如果传入的对象有key属性,那么key会作为索引值保存,如果没有key属性,则自动生成一个key值,然后保存在table.index

var store = Lawnchair({name:'tableName'}, function { });store.save({ key:'hust', name:'xesam_1' })store.save({ key:'whu', name:'xesam_2' })

batch(array, callback)//保存一组对象 效果同上

var store = Lawnchair({name:'table'}, function { });store.batch([{ key:'hust', name:'xesam_1' },{ key:'whu', name:'xesam_2' }])

exists (key, callback)//检查是否存在key,并将结果的布尔值(true/false)传递给callback函数

store.exists('whu',function{ console.log;//true})store.exists('test',function{ console.log;//false})

get (key|array, callback)//获取一个或者一组对象,然后调用callback处理

store.get('hust',function{ console.log;//{key:'hust',name:'xesam_1'} })

all //将所有对象放在一个数组返回

store.all(function{ console.log;//[{key:'hust',name:'xesam_1'},{key:'whu',name:'xesam_2'}] })

each//遍历集合,将传递给callback函数

store.each(function{ console.log; //{key:'hust',name:'xesam_1'} // {key:'whu',name:'xesam_2'} })

remove (key|array, callback)//移除一个或者一组元素。

store.remove('whu',function(){ store.all(function{ console.log//[{key:'hust',name:'xesam_1'}] }); })

nuke //销毁所有

store.nuke(function(){ store.all(function{ console.log//[] }); })

keys //返回存储对象的所有keys

store.keys(function{ console.log//['hust','whu'] })

新建一个浏览记录的管理者的js文件 代码实现

var haveReadResumeTableName = 'haveReadResumeTableName'function getHaveReadResumeTableManager() { return new Lawnchair({name: haveReadResumeTableName}, function {});}//清除30天前的查看记录function cleanBeforeThirtyDaysResumes() { var claerReadResumeHistoryDay = localStorage.claerReadResumeHistoryDay; if(claerReadResumeHistoryDay){ try{ if(getCurrentDate() == claerReadResumeHistoryDay){ return; } }catch{ //TODO handle the exception } } localStorage.claerReadResumeHistoryDay = getCurrentDate(); var manager = getHaveReadResumeTableManager(); var beforeThirtyDays = getAfterDay; manager.each(function(resume,keyo) { if(resume.SAVETIME < beforeThirtyDays) { manager.remove(resume.RESUMEID, function; } });}

查看简历的时候储存简历信息,SAVETIME 对应的是储存的日期。该记录只会保留30天。

 //保存简历到本地 function saveThisResumeToLoactionWithResumeAndTime(resumeId, nowTime) { var store = getHaveReadResumeTableManager(); // 需要保存的对象 var resume = { key: resumeId, RESUMEID: resumeId, SAVETIME: nowTime }; // 保存 store.save; }

批量搜索简历 得到数据后判断简历是否在查看记录里面,已查看会做相应的标示。

 var resumeManager = getHaveReadResumeTableManager(); for(var i = 0, len = list.length; i < len; i++) { var resume = list[i]; var li = document.createElement; //判断是否查看过此简历 var haveReadret = false; resumeManager.exists(resume.RESUMEID, function { haveReadret = haveRead; });

清除30的记录 适当时候调用。

本文由永利皇宫463登录发布于编程,转载请注明出处:对象到本地

关键词:

上一篇:对象到本地

下一篇:对象到本地