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

本文介绍了一种利用 IE 浏览器的 userData 特性实现客户端数据持久化的技术。此方法适用于 IE5 及以上版本,通过为 document 元素附加 userData 行为,并使用 load 和 save 方法来读取和保存数据。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

客户端存储---利用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-->

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值