WEB應用的快速發展,是的本地存儲一些數據也成爲一種重要的需求,實現的方案也有不少,最普通的sql
WEB應用的快速發展,是的本地存儲一些數據也成爲一種重要的需求,實現的方案也有不少,最普通的
cookie
就是cookie了,你們也常常都用,可是cookie的缺點是顯而易見的,其餘的方案好比:IE6以上的userData,Firefox下面的globalStorage,以及Flash的本地存儲,除了Flash以外,其餘的幾個都有一些兼容性的問題。
sessionStorage與localStorage
Web Storage實際上由兩部分組成:sessionStorage與localStorage。
sessionStorage用於本地存儲一個會話(session)中的數據,這些數據只有在同一個會話中的頁面才能訪問而且當會話結束後數據也隨之銷燬。所以sessionStorage不是一種持久化的本地存儲,僅僅是會話級別的存儲。
localStorage用於持久化的本地存儲,除非主動刪除數據,不然數據是永遠不會過時的。
userData
語法:
XML <Prefix: CustomTag ID=sID STYLE="behavior:url('#default#userData')" />
HTML <ELEMENT STYLE="behavior:url('#default#userData')" ID=sID>
Scripting object .style.behavior = "url('#default#userData')"
object .addBehavior ("#default#userData")
屬性:
expires 設置或者獲取 userData behavior 保存數據的失效日期。
XMLDocument 獲取 XML 的引用。
方法:
getAttribute() 獲取指定的屬性值。
load(object) 從 userData 存儲區載入存儲的對象數據。
removeAttribute() 移除對象的指定屬性。
save(object) 將對象數據存儲到一個 userData 存儲區。
setAttribute() 設置指定的屬性值。
localStorage
方法:
localStorage.getItem(key):獲取指定key本地存儲的值
localStorage.setItem(key,value):將value存儲到key字段
localStorage.removeItem(key):刪除指定key本地存儲的值session
標籤: <無> app
?ide
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
|
localData = {
hname:location.hostname?location.hostname:
'localStatus'
,
isLocalStorage:window.localStorage?
true
:
false
,
dataDom:
null
,
initDom:
function
(){ //初始化userData
if(!this.dataDom){
try{
this.dataDom = document.createElement(
'input'
);//這裏使用hidden的input元素
this.dataDom.type =
'hidden'
;
this.dataDom.style.display =
"none"
;
this.dataDom.addBehavior(
'#default#userData'
);//這是userData的語法
document.body.appendChild(this.dataDom);
var exDate = new
Date
();
exDate = exDate.getDate()+30;
this.dataDom.expires = exDate.toUTCString();//設定過時時間
}catch(ex){
return
false
;
}
}
return
true
;
},
set
:
function
(
key
,value){
if(this.isLocalStorage){
window.localStorage.setItem(
key
,value);
}
else
{
if(this.initDom()){
this.dataDom.
load
(this.hname);
this.dataDom.setAttribute(
key
,value);
this.dataDom.save(this.hname)
}
}
},
get:
function
(
key
){
if(this.isLocalStorage){
return
window.localStorage.getItem(
key
);
}
else
{
if(this.initDom()){
this.dataDom.
load
(this.hname);
return
this.dataDom.getAttribute(
key
);
}
}
},
remove:
function
(
key
){
if(this.isLocalStorage){
localStorage.removeItem(
key
);
}
else
{
if(this.initDom()){
this.dataDom.
load
(this.hname);
this.dataDom.removeAttribute(
key
);
this.dataDom.save(this.hname)
}
}
}
}
|