userData IE
蛮讨厌IE的,因为他常常需要特别照顾,就像DOM Storage(sessionStorage和localStorage)只能支持IE8+,对于以下的只能使用userData。
原理:通过在document元素后面附加一个专属的“DHTML行为”来实现客户端存储,
var memory=document.createElement("div");//创建一个元素
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()方法即可。
Methods | Description |
---|---|
getAttribute(attr) | 获取存储对象中属性值 |
load(name) | 载入存储数据对象 |
removeAttribute(attr) | 删除存储对象中的属性 |
save(name) | 更新存储数据对象 |
setAttribute(attr, value) | 设置存储对象中的键对值 |
properties | |
expires | 数据的有效期 |
XMLDocument | Returns a reference to the XML Document of the persisted object. |
基于userData实现部分存储API
/*基于IE的userData实现,只有在IE中有效,保存名为UserDataStorage.js*/
function UserDataStorage(maxage){
//创建一个document元素鼻骨附加userData行为
//因此该元素得save()和loda()方法
var memory=document.createElement("div");
memory.style.display="none";
memory.style.behavior="url('#default#userData')"; //附加userData行为
document.body.appendChild(memory); //如果传递了maxage参数(单位为秒),则将其设置为userData的有效期,以毫秒为单位
if(maxage){
var now=new Date().getTime(); //当前时间
var expires=now+maxage*1000;//当前时间加上有效期就等于过期时间
memory.expires=new Date(expires).toUTCString(); //设置userData的过期时间
} //通过载入存储的数据初始化memory元素
//参数是任意的,只要是在保存的时候存在的就可以了
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"); //再次保存状态
}
}
因为以上只能针对ie所以要在最后写上
<!--[if IE]>
<script src="UserDataStorage.js"></script>
<![endif]-->
userData允许存储的数据量比cookie大,但是却比localStorage以及sessionStorage允许存储的数据量要小。
userData IE的更多相关文章
- Lua 之 userdata
Lua 之 userdata 在Lua中可以通过自定义类型(user data)与C语言代码更高效.更灵活的交互,从而扩展Lua能够表达的类型. full userdata full userdata ...
- 快速编译system.img、userdata.img、boot.img的方法
快速编译system.img和boot.img的方法 快速编译system.img,可以使用这个命令: #make systemimage 快速编译boot.img,可以使用以下命令: #make b ...
- zImage.img、ramdisk.img、system.img、userdata.img介绍及解包、打包方法
ramdisk.img system.img userdata.img介绍及解包.打包方法 Android 源码编译后,在out/target/product/generic下生成ramdisk.im ...
- Android 的 ramdisk.img、system.img、userdata.img 作用说明,以及UBoot 系统启动过程
首先通過編譯,先將android內核編譯成功.正常情況下,在目錄out/target.product/generic/(但是有的就沒有generic文件,如freescale和iriver:但是lon ...
- Qt之界面数据存储与获取(使用setUserData()和userData())
在GUI开发中,往往需要在界面中存储一些有用的数据,这些数据可以来配置文件.注册表.数据库.或者是server. 无论来自哪里,这些数据对于用户来说都是至关重要的,它们在交互过程中大部分都会被用到,例 ...
- localstorage || globalStorage || userData
globalStorage 这个也是html5中提出来,在浏览器关闭以后,使用globalStorage存储的信息仍能够保留下来,并且存储容量比IE的userdata大得多,一个域下面是5120k.和 ...
- js本地存储解决方案(localStorage与userData)
WEB应用的快速发展,是的本地存储一些数据也成为一种重要的需求,实现的方案也有很多,最普通的就是cookie了,大家也经常都用,但是cookie的缺点是显而易见的,其他的方案比如:IE6以上的user ...
- 基于'sessionStorage'与'userData'的类session存储
Storage.js: 注意:此版本实现的存储在符合Web存储标准(ie8及ie8以上的版本与其他主流浏览器)的情况下与session的周期一致,但在页面不关闭的情况下没有过期时间,ie7及以下版本则 ...
- web本地存储-UserData
userData,IE中持久化用户数据的方法. 使用userData用户数据首先必须使用css指定userData行为.代码示例: var ud = document.createElement(&q ...
- Lua中的userdata
[话从这里说起] 在我发表<Lua中的类型与值>这篇文章时,就有读者给我留言了,说:你应该好好总结一下Lua中的function和userdata类型.现在是时候总结了.对于functio ...
随机推荐
- OAuth相关备注
引用大神的资料,备注一下 http://www.cnblogs.com/dudu/tag/OAuth/
- Android 学习之路和App开发框架
学习之路: 1. http://www.stormzhang.com/android/2014/07/07/learn-android-from-rookie/ 框架: 2. https://gith ...
- 在win7上安装visual c++ 2008 redistributable 发生错误error 1935
方案一.原来服务"Windows Modules Installer"被禁用了, 启用该服务后, 问题就解决了. 方案二. 1.点开始——在运行框里输入regedit,按回车键 ...
- JFinal学习 & Gradle配置续 & Tomcat配置
接上一篇对Gradle的学习,再用JFinal项目再建一个. 参考了这篇文章:https://my.oschina.net/u/1010578/blog/390094 但是其中没有代码,所以看了这篇 ...
- python-pyDes-ECB加密-DES-DES3加密
网上的教程都他妹的是抄的,抄也就算了,还改抄错了,害我写了一两天都没找到原因,直接去官网看,找例子很方便 官网链接:http://twhiteman.netfirms.com/des.html 一个小 ...
- webpack打包问题
最近项目里需要替换一个logo,原先的logo打包后生成的静态文件里有对应的图片,替换了新的的图片打包后并没有生成相应的静态文件,两个图片都在同一个文件目录下,而且图片是直接引入并不会出现打包不到图片 ...
- RESTful API 设计原则
http://www.ruanyifeng.com/blog/2014/05/restful_api.html http://www.ruanyifeng.com/blog/2011/09/restf ...
- Asp.Net Core 初探 (三)
昨天失败的生产环境部署就先放着,明天再解决! 今天利用中午的空余时间看了一下Asp.net core 的Areas . 相对于Asp.net MVC5 以及之前的版本,asp.net core 的Ar ...
- 【推荐】初级.NET程序员,你必须知道的EF知识和经验
阅读目录 推荐MiniProfiler插件 数据准备 foreach循环的陷进 AutoMapper工具 联表查询统计 性能提升之AsNonUnicode 性能提升之AsNoTracking 多字 ...
- spring applicationContext.xml详解及模板
applicationContext.xml 文件 1.<context:component-scan base-package="com.eduoinfo.finances.ba ...