手机
当前位置:查字典教程网 >编程开发 >Javascript教程 >UserData用法总结 lanyu出品
UserData用法总结 lanyu出品
摘要:应用范围UserData是微软为IE专门在系统中开辟的一块存储空间,所以说只支持Windows+IE的组合,实际测试在2000(IE5.5)...

应用范围

UserData是微软为IE专门在系统中开辟的一块存储空间,所以说只支持Windows+IE的组合,实际测试在2000(IE5.5)、XP(IE6、IE7),Vista(IE7)下都是可以正常使用的。

在哪儿?

在XP下,一般位于C:Documents and Settings用户名UserData,有些时候会在C:Documents and Settings用户名Application DataMicrosoftInternet ExplorerUserData。

在Vista下,位于C:Users用户名AppDataRoamingMicrosoftInternet ExplorerUserData。

容量

网页制作完成手册中这样说:

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函数定义结束

};

【UserData用法总结 lanyu出品】相关文章:

JavaScript常用数组算法小结

让iframe框架网页在任何浏览器下自动伸缩

JSON简介以及用法汇总

javascript去除空格方法小结

jQuery插件制作之参数用法实例分析

javascript基于DOM实现权限选择实例分析

prototype 的说明 js类

Js和JQuery获取鼠标指针坐标的实现代码分享

精确到分钟的js日历控件,日期选择器代码

什么是Node.js?

精品推荐
分类导航