[转]UserData使用总结 - lanyu
前一段做音乐和链接保存项目时用到了UserData,现在上线后效果不错,就把UserData的一些用法总结出来,大家一同分享。
应用范围
UserData是微软为IE专门在系统中开辟的一块存储空间,所以说只支持Windows+IE的组合,实际测试在2000(IE5.5)、XP(IE6、IE7),Vista(IE7)下都是可以正常使用的。
在哪儿?
在XP下,一般位于C:\Documents and Settings\用户名\UserData,有些时候会在C:\Documents and Settings\用户名\Application Data\Microsoft\Internet Explorer\UserData。
在Vista下,位于C:\Users\用户名\AppData\Roaming\Microsoft\Internet Explorer\UserData。
容量
网页制作完成手册中这样说:
Security Zone |
Document Limit (KB) |
Domain Limit (KB) |
Local Machine |
128 |
1024 |
Intranet |
512 |
10240 |
Trusted Sites |
128 |
1024 |
Internet |
128 |
1024 |
Restricted |
64 |
640 |
线上使用时,单个文件的大小限制是128KB,一个域名下总共可以保存1024KB的文件,文件个数应该没有限制。在受限站点里这两个值分别是64KB和640KB,所以如果考虑到各种情况的话,单个文件最好能控制64KB以下。
如何使用?
用下面的JS语句就可以建立一个支持UserData的对象:
o = document.createElement('input');
o.type = "hidden";
o.addBehavior ("#default#userData");
//UserData.o.style.behavior = "url('#default#userData')" ;
//上面的语句也是一样的作用
document.body.appendChild(o);
说白了UserData就是样式里的一个Behavior,所以这样写也是一样的:
<input type=hidden class= storeuserData />
<style>
.storeuserData {behavior:url(#default#userData);}
</style>
UserData可以绑定在大多数的html标签上,具体为:
A, ACRONYM, ADDRESS, AREA, B, BIG, BLOCKQUOTE, BUTTON, CAPTION, CENTER, CITE, CODE, DD, DEL, DFN, DIR, DIV, DL, DT, EM, FONT, FORM, hn, HR, I, IMG, INPUT type=button, INPUT type=checkbox, INPUT type=file, INPUT type=hidden, INPUT type=image, INPUT type=password, INPUT type=radio, INPUT type=reset, INPUT type=submit, INPUT type=text, KBD, LABEL, LI, LISTING, MAP, MARQUEE, MENU, OBJECT, OL, OPTION, P, PLAINTEXT, PRE, Q, S, SAMP, SELECT, SMALL, SPAN, STRIKE, STRONG, SUB, SUP, TABLE, TEXTAREA, TT, U, UL, VAR, XM
UserData对象有以下的属性和方法:
属性 |
描述 |
expires |
设置或读取文件过期时间 |
XMLDocument |
读取文件的XML DOM |
方法 |
描述 |
getAttribute |
读取指定属性的值 |
load |
打开文件 |
removeAttribute |
删除指定的属性 |
save |
保存文件 |
setAttribute |
为指定属性赋值 |
UserData文件实际上就是一个XML文件,通过文件名->属性的方式保存字符串,如以下一段代码:
o.setAttribute("code", "hello world!");
o.save("baidu");
执行后,UserData文件夹中会生成一个baidu[1].xml文件,其中的内容是:
<ROOTSTUB code="hello,world!"/>
在一个文件中可以有多个属性,也就是可以存储多种不同的数据。
在音乐盒链接保存项目里,封装了一个UserData类,这样可以更方便地使用UserData,代码如下:
/** @class 定义userdata的操作 */
var UserData = {
// 定义userdata对象
o : null,
// 设置文件过期时间
defExps : 365,
// 初始化userdate对象
init : function(){
if(!UserData.o){
try{
UserData.o = document.createElement('input');
UserData.o.type = "hidden";
//UserData.o.style.behavior = "url('#default#userData')" ;
UserData.o.addBehavior ("#default#userData");
document.body.appendChild(UserData.o);
}catch(e){
return false;
}
};
return true;
},
// 保存文件到userdata文件夹中 f-文件名,c-文件内容,e-过期时间
save : function(f, c, e){
if(UserData.init()){
var o = UserData.o;
// 保持对象的一致
o.load(f);
// 将传入的内容当作属性存储
if(c) o.setAttribute("code", c);
// 设置文件过期时间
var d = new Date(), e = (arguments.length == 3) ? e : UserData.defExps;
d.setDate(d.getDate()+e);
o.expires = d.toUTCString();
// 存储为制定的文件名
o.save(f);
}
},
// 从uerdata文件夹中读取指定文件,并以字符串形式返回。f-文件名
load : function(f){
if(UserData.init()){
var o = UserData.o;
// 读取文件
o.load(f);
// 返回文件内容
return o.getAttribute("code");
}
},
// 检查userdata文件是否存在 f-文件名
exist : function(f){
return UserData.load(f) != null;
},
// 删除userdata文件夹中的指定文件 f-文件名
remove : function(f){
UserData.save(f, false, -UserData.defExps);
}
// UserData函数定义结束
};
转载于:https://www.cnblogs.com/QLeelulu/archive/2008/03/29/1129322.html
[转]UserData使用总结 - lanyu相关推荐
- UserData使用总结[转载-lanyu]
前一段做音乐和链接保存项目时用到了UserData,现在上线后效果不错,就把UserData的一些用法总结出来,大家一同分享. 应用范围 UserData是微软为IE专门在系统中开辟的一块存储空间,所 ...
- Android系统源码学习——ramdisk.img、system.img、userdata.img三个文件介绍
2019独角兽企业重金招聘Python工程师标准>>> Android源码编译后,在out/target/product/generic下生成的三个镜像文件:ramdisk.img, ...
- 问题:Unable to find a 'userdata.img' file for ABI armeabi to copy into the AVD folder.
创建AVD时,发现创建不成功,报错"Unable to find a 'userdata.img' file for ABIarmeabi to copy into the AVD fold ...
- 设计一个shell程序,在/userdata目录下建立50个目录,并对每个目录给754权限!
设计一个Shell程序,在/userdata目录下建立50个目录,即user1-user50,并设置每个目录的权限,其中其他用户的权限为:读:文件所有者的权限为:读.写.执行:文件所有者所在组的权限为 ...
- Android 系统镜像: boot.img kernel.img ramdisk.img system.img userdata.img cache.img recovery.img
boot.img(kernel.img+ramdisk.img) ramdisk.img(/) system.img(/system) userdata.img(/data) cache.img(/c ...
- lua userdata
2019独角兽企业重金招聘Python工程师标准>>> userdata类型是为了方便C/C++对Lua进行扩展,因为在用C/C++扩展时,我们经常会自定义数据类型,如: typed ...
- IE userdata
在Internet Explorer 5中,Microsoft提供了名为userData的客户端持久存储功能.它是通过对CSS行为进行特殊扩展来实现的.这些扩展完全都是非标准的,是 90年代后期浏览器 ...
- Android 的 ramdisk.img、system.img、userdata.img 作用说明,以及UBoot 系统启动过程
首先通過編譯,先將android內核編譯成功.正常情況下,在目錄out/target.product/generic/(但是有的就沒有generic文件,如freescale和iriver:但是lon ...
- Android ramdisk.img system.img userdata.img 介绍与使用
android源码编译后得到system.img,ramdisk.img,userdata.img映像文件.其中, ramdisk.img是emulator的文件系统,system.img包括了主要的 ...
最新文章
- ORACLE SQL语句总结2
- Raspberry Pi 4B 循迹模块
- 从 12306 订购火车票 无需FQ
- MySQL用source命令导入不记入binlog中【原创】
- 利用JSONP解决AJAX跨域问题的原理与jQuery解决方案
- html计时器组件,vue 计时器组件的实现代码
- 基于javaEE技术的课程设计管理系统设计与实现
- anaconda moviepy_Anaconda的安装和Jupyter Notebook使用
- 两个水平排列的div顶部对齐~详细
- HTML的定义和特点,【HTML】复习笔记(一)初识HTML
- 基于RGB图像的机器人抓取算法汇总
- jdk8,lambda表达(简化代码)
- 目标检测方法总结(R-CNN系列)
- 搭建MQTT服务器实现Android客户端与ESP8266之间即时通信
- 安全测试 switchport protected
- 数据库期末复习:选择题汇总
- Android 蓝牙 Bluetooth 自动回连 取消pin码校验弹出框
- Docker 学习之 Docker 容器数据卷
- 银河麒麟V10操作系统修改屏幕分辨率
- 计算机word模块试题,计算机word考试试题1(附答案)