IE中的userData

  以前作項目時用到了localstorage,可是考慮到瀏覽器存在IE8如下不兼容問題,因此來介紹如下IE中的userData。javascript

  本地存儲解決方案不少,好比Flash SharedObject、Google Gears、Cookie、DOM Storage、User Data、window.name、Silverlight、Open Database等。css

  借用網上的一張圖來看下目前主流的本地存儲方案:html

  • Cookie: 在web中獲得普遍應用,但侷限性很是明顯,容量過小,有些站點會由於出於安全的考慮而禁用cookie,cookie沒有想象中的那麼安全,Cookie 的內容會隨着頁面請求一併發往服務器。
  • Flash SharedObject: 使用的是kissy的store模塊來調用Flash SharedObject。Flash SharedObject的優勢是容量適中,基本上不存在兼容性問題,缺點是要在頁面中引入特定的swf和js文件,增長額外負擔,處理繁瑣;仍是有部分機子沒有flash運行環境。
  • Google Gears: Google的離線方案,已經中止更新,官方推薦使用html5的localStorage方案。
  • User Data: 是微軟爲IE專門在系統中開闢的一塊存儲空間,因此說只支持Windows+IE的組合,實際測試在2000(IE5.5)、XP(IE六、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;單個文件的大小限制是128KB,一個域名下總共能夠保存1024KB的文件,文件個數應該沒有限制。在受限站點裏這兩個值分別是64KB和640KB,因此若是考慮到各類狀況的話,單個文件最好能控制64KB如下。
  • localStorage: 相對於上述本地存儲方案,localStorage有自身的優勢:容量大、易用、強大、原生支持;缺點是兼容性差些(chrome,  safari, firefox,IE 9,IE8都支持 localStorage,主要是IE8如下版本不支持)、安全性也差些(因此請勿使用localStorage保存敏感信息)。

主要說說lUserData:html5

UserData

  • 基本語法 :
    XML: <Prefix: CustomTag id=sID style=」behavior:url(‘#default#userData’)」 />
    HTML: <ELEMENT style=」behavior:url(‘#default#userData’)」 id=sID>
  • Script:
    object.style.behavior = 「url(‘#default#userData’)」
    object.addBehavior (「#default#userData」)
  • 屬性:
    expires 設置或者獲取 userData behavior 保存數據的失效日期。
    XMLDocument 獲取 XML 的引用。
  • 方法:
    getAttribute() 獲取指定的屬性值。
    load(object) 從 userData 存儲區載入存儲的對象數據。
    removeAttribute() 移除對象的指定屬性。
    save(object) 將對象數據存儲到一個 userData 存儲區。
    setAttribute() 設置指定的屬性值。

要使用userData存儲功能,必須先創建一個HTML標籤,而後將behavior:url(‘#default#userData’)樣式屬性加上去,等於說userData是寄存於HTML標籤的,固然不是全部標籤都是能夠的,僅限於部分標籤。要了解更多的信息能夠訪問MSDN的《userData Behavior》 。java

用法舉例:web

<html> 
 
<head> 
<style type="text/css"> 
.storeuserData { 
    behavior: url(#default#userData); 
} 
</style> 
<script type="text/javascript"> 
function fnSaveInput(){ 
   var oPersist=oPersistForm.oPersistInput; 
   oPersist.setAttribute("sPersist",oPersist.value); 
   oPersist.save("oXMLBranch"); 
} 
function fnLoadInput(){ 
   var oPersist=oPersistForm.oPersistInput; 
   oPersist.load("oXMLBranch"); 
   oPersist.value=oPersist.getAttribute("sPersist"); 
} 
</script> 
</head> 
 
<body> 
 
<form id="oPersistForm"> 
    <input class="storeuserData" type="text" id="oPersistInput"> 
    <input type="button" value="Load" onclick="fnLoadInput()"> 
    <input type="button" value="Save" onclick="fnSaveInput()"> 
</form> 
 
</body> 
 
</html>
相關文章
相關標籤/搜索