【js学习笔记-105】----利用IE userData持久化数据

来源:互联网 发布:公司注册淘宝 编辑:程序博客网 时间:2024/05/29 21:34

客户端存储---利用IE userData持久化数据

IE5及以上版本的浏览器是通过document元素后面附加一个专属“DHTML行为”来实现客户存储的。

如下:

 var memory = document.createElement(“div”);

 memory.id = “_memory”;

 memory.style.display = “none”;

 memory.style.behavior = “url(‘#default#userData’)”;//附加userData行为

 document.body.appendChild(memory); //将其添加到document元素中。

一旦给元素赋予了“userData“行为,该元素就拥有load()和save()方法。load()方法用于载入存储的数据。使用它的时候必须传递一个字符串作为参数----类似于一个文件名,该参数用来指定要载入的存储数据。当数据载入后,就可以通过该元素的属性来访问这些名、值对形式的数据,可以使用getAttribute()来查询这些数据。通过setAttribute()方法来设置属性,然后调用save()方法可以存储新的数据;removeAttribute()方法删除数据然后调用save()方法再保存一下。

memory.load(“myStoreData”);

var name =memory.getAttribute(“username”);

  if(!name){

    name = prompt(“What is your name?”);

    memory.setAttribute(“  username”,name);

    memory.save(“myStoreData”);

  }

默认情况下,通过userData存储的数据,除非拖动删除否则永不失效。但是,也可以通过设置expires属性来指定过期时间。如下

var now = (newDate()).getTime();

var expires =now+100*24*60*60*1000; //距离当前100天,把天数换算成毫秒

expires = new Date(expires).toUTCString();

memory.expires = expires;

 

例:基于IE的userData实现部分存储API

   function userDataStroage(maxage){

      创建document元素并附加userData行为

       var memory = document.createElement(“div”);

       memory.id= “_memory”;

       memory.style.display= “none”;

       memory.style.behavior= “url(‘#default#userData’)”; //附加userData行为

       document.body.appendChild(memory);//将其添加到document元素中。

        if(maxage){

              var now = new Date().getTime();

              var expires = now+maxage*1000;

              memory.expires = new Date(expires).toUTCString();

        }

         memory.load(“UserDataStorage”);

         this.getItem= function(key){

                   return memory.getAttribute(key)|| null;

         };

         this.setItem = function(key,value){

                   memory.setAttribute(key,value);

                   memory.save(“UserDataStorage”);

         }

         this.removeItem = function(key){

              memory.removeAttribute(key);

              memory.save(“UserDataStorage”);

         }

   }

 

引用时

<!--if IE-->

 <script type=”text/javascript” src=”UserDataStorage.js”></script>

<!--endif-->

0 0
原创粉丝点击