最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

javascript globalStorage類代碼

 更新時間:2009年06月04日 17:48:38   作者:  
非IE瀏覽器“userdata”的解決方案
globalStorage
這個也是html5中提出來,在瀏覽器關(guān)閉以后,使用globalStorage存儲的信息仍能夠保留下來,并且存儲容量比IE的userdata大得多,一個域下面是5120k。和sessionStorage一樣,域中任何一個頁面存儲的信息都能被所有的頁面共享。
作用域
globalStorage['z.baidu.com'] 所有z.baidu.com下面的頁面都可以使用這塊空間
globalStorage['baidu.com'] 所有baidu.com下面的頁面都可以使用這塊空間
globalStorage['com']:所有com域名都可以 共享的使用這一塊空間
globalStorage[''] :所有頁面都可以使用的空間
現(xiàn)在Firefox只支持當(dāng)前域下的globalStorage存儲, 如果使用公用域會導(dǎo)致一個這樣一個類似的錯誤“Security error” code: “1000”。
過期時間
按照HTML5的描述,globalStorage只在安全問題或者當(dāng)用戶要求時才會過期,瀏覽器應(yīng)該避免刪除那些正在被腳本訪問的數(shù)據(jù),并且userdata應(yīng)該是用戶可寫的。
因此我們的腳本要能夠控制過期時間,可以在globalStorage的某個區(qū)域存儲過期時間,在load的時候判斷是否過期,可以在一定程度上解決過期時間的問題。
存儲時,同時存儲過期時間
以上是我從網(wǎng)上查詢到的資料,為了兼容非IE瀏覽器“userdata”,我改進(jìn)了之前我自己寫的一個
“userdata”(見 UserData使用總結(jié)) ,現(xiàn)在是兼容IE和支持globalStorage的瀏覽器了。
復(fù)制代碼 代碼如下:

function behaviorUserdata(udObj)
{
    var me = this;
    if(CMInfo.Bs_Name=='IE')    //IE下用userdata實現(xiàn)客戶端存儲
    {
        var loaded = '';    //當(dāng)前已載入的文件名

        this.udObj = getObject(udObj);
        this.udObj.style.behavior = 'url(#default#userdata)';
        this.value = this.udObj.value;
        this.inhtml = this.udObj.innerHTML;

        //檢查文件是否存在,存在est=undefined并返回true否則返回false
        this.exist = function(filename){
            try{
                me.udObj.load(filename);//將文件名為 filename的 XML 載入
                me.loaded = filename;
                return true;
            }catch(e){ return false;}
        }
        //預(yù)加載
        this.preLoad = function(filename){
            if(me.loaded=='' || me.loaded!=filename){me.exist(filename);}
            return me.loaded;
        }
        //獲取指定的屬性值
        this.getAtrib = function(filename,atrib){
            if(me.preLoad(filename)!='')
            {
                var val = me.udObj.getAttribute(atrib);
                return val==null?"":val;
            }return "";
        }
        //移除對象的指定屬性
        this.remAtrib = function(filename,atrib){
            me.udObj.removeAttribute(atrib);
            me.udObj.save(filename);    //將對象數(shù)據(jù)保存到名為filename的XML文件里面
            return true;
        }
        //設(shè)置指定的屬性值
        this.setAtrib = function(filename,atrib,val,expire){
            var etime = typeof(expire)=="undefined"?24*60*60:expire;
            me.udObj.expires = me.setExpire(etime);
            me.udObj.setAttribute(atrib,val);
            me.udObj.save(filename);
        }
        //設(shè)置一個系列的對象數(shù)據(jù)(即整個XML文件)失效
        this.remPartion = function(filename){
            if(me.exist(filename))
            {
                me.udObj.expires = me.setExpire(-1);
                me.udObj.save(filename);
            }
        }
        //設(shè)置有效期
        this.setExpire = function(sec){
            var oTimeNow = new Date();
            oTimeNow.setSeconds(oTimeNow.getSeconds() + parseInt(sec));
            return oTimeNow.toUTCString();
        }
    }else    //非IE下用globalStorage實現(xiàn)客戶端存儲
    {
        var domain = document.domain;

        //獲取指定的屬性值
        this.getAtrib = function(filename,atrib){
            var oTimeNow = new Date();
            var etime = parseInt(window.globalStorage[domain][filename + "__expire"]);
            if(!etime || etime < parseInt(oTimeNow.getTime()))
            {
                me.remPartion(filename);
                return '';
            }
            return window.globalStorage[domain][filename + "__" + atrib];
        }

        //移除對象的指定屬性
        this.remAtrib = function(filename,atrib){
            try{window.globalStorage.removeItem(filename + "__" + atrib);}catch(e){}//刪除
            return true;
        }

        //設(shè)置指定的屬性值
        this.setAtrib = function(filename,atrib,val,expire){
            var etime = typeof(expire)=="undefined"?24*60*60:expire;
            window.globalStorage[domain][filename + "__expire"] = me.setExpire(etime);
            window.globalStorage[domain][filename + "__" + atrib] = val;
        }

        //設(shè)置一個系列的對象數(shù)據(jù)失效
        this.remPartion = function(filename){
            me.remAtrib(filename,"expire");
            return true;
        }

        //設(shè)置有效期
        this.setExpire = function(sec){
            var oTimeNow = new Date();
            oTimeNow.setSeconds(oTimeNow.getSeconds() + parseInt(sec));
            return oTimeNow.getTime();
        }    
    }
}

其中CMInfo類見 一些常用的JS功能函數(shù)(一) (2009-06-04更新)
需要說明的是因為還沒用到實際項目中,因此還不知其兼容性和穩(wěn)定性如何,如果網(wǎng)友發(fā)現(xiàn)了BUG,還望指出。謝謝

相關(guān)文章

  • javascript中類的定義方式詳解(四種方式)

    javascript中類的定義方式詳解(四種方式)

    這篇文章主要介紹了javascript中類的定義方式,結(jié)合實例形式較為詳細(xì)的分析了JavaScript中類的四種定義方式,具有一定參考借鑒價值,需要的朋友可以參考下
    2015-12-12
  • Vue編程式跳轉(zhuǎn)的實例代碼詳解

    Vue編程式跳轉(zhuǎn)的實例代碼詳解

    這篇文章主要介紹了Vue編程式跳轉(zhuǎn)的實例代碼,文中給大家介紹了vue 編程式j(luò)s跳轉(zhuǎn)路由,代碼簡單易懂,非常不錯,具有一定的參考借鑒價值,需要的朋友可以參考下
    2019-07-07
  • javascript自定義事件功能與用法實例分析

    javascript自定義事件功能與用法實例分析

    這篇文章主要介紹了javascript自定義事件功能與用法,結(jié)合實例形式較為詳細(xì)的分析了javascript自定義事件的原理、功能、應(yīng)用與相關(guān)注意事項,需要的朋友可以參考下
    2017-11-11
  • js實現(xiàn)字符串和數(shù)組之間相互轉(zhuǎn)換操作

    js實現(xiàn)字符串和數(shù)組之間相互轉(zhuǎn)換操作

    這篇文章主要介紹了js實現(xiàn)字符串和數(shù)組之間相互轉(zhuǎn)換操作的相關(guān)資料,感興趣的小伙伴們可以參考一下
    2016-01-01
  • Electron?自定義窗口桌面時鐘實現(xiàn)示例詳解

    Electron?自定義窗口桌面時鐘實現(xiàn)示例詳解

    這篇文章主要為大家介紹了Electron?自定義窗口桌面時鐘實現(xiàn)示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-03-03
  • JavaScript 基礎(chǔ)表單驗證示例(純Js實現(xiàn))

    JavaScript 基礎(chǔ)表單驗證示例(純Js實現(xiàn))

    下面小編就為大家?guī)硪黄狫avaScript 基礎(chǔ)表單驗證示例(純Js實現(xiàn))。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-07-07
  • javascript勻速動畫和緩沖動畫詳解

    javascript勻速動畫和緩沖動畫詳解

    這篇文章主要為大家詳細(xì)介紹了javascript勻速動畫和緩沖動畫,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2016-10-10
  • 詳解JavaScript實現(xiàn)動態(tài)的輪播圖效果

    詳解JavaScript實現(xiàn)動態(tài)的輪播圖效果

    這篇文章主要介紹了JavaScript實現(xiàn)動態(tài)的輪播圖效果,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-04-04
  • Bootstrap布局組件教程之Bootstrap下拉菜單

    Bootstrap布局組件教程之Bootstrap下拉菜單

    這篇文章主要介紹了Bootstrap布局組件教程之Bootstrap下拉菜單的相關(guān)資料,非常不錯具有參考借鑒價值,需要的朋友可以參考下
    2016-06-06
  • jQuery EasyUI window窗口使用實例代碼

    jQuery EasyUI window窗口使用實例代碼

    本文通過實例代碼給大家介紹了jQuery EasyUI window窗口使用功能,代碼簡單易懂,非常不錯,具有參考借鑒價值,需要的朋友可以參考下
    2017-12-12

最新評論

新丰县| 汉源县| 赤峰市| 临清市| 临武县| 石泉县| 平乡县| 阳原县| 沐川县| 沙洋县| 密山市| 龙山县| 恩施市| 灌云县| 德阳市| 静乐县| 手游| 聂拉木县| 宜良县| 保靖县| 汾西县| 孙吴县| 扎鲁特旗| 商丘市| 宁乡县| 商城县| 大冶市| 平罗县| 靖宇县| 两当县| 东乡县| 新营市| 天等县| 青海省| 龙州县| 专栏| 内黄县| 云南省| 武城县| 万山特区| 冷水江市|