天天躁日日躁狠狠躁AV麻豆-天天躁人人躁人人躁狂躁-天天澡夜夜澡人人澡-天天影视香色欲综合网-国产成人女人在线视频观看-国产成人女人视频在线观看

javascript globalStorage類代碼

globalStorage
這個也是html5中提出來,在瀏覽器關閉以后,使用globalStorage存儲的信息仍能夠保留下來,并且存儲容量比IE的userdata大得多,一個域下面是5120k。和sessionStorage一樣,域中任何一個頁面存儲的信息都能被所有的頁面共享。
作用域
globalStorage['z.baidu.com'] 所有z.baidu.com下面的頁面都可以使用這塊空間
globalStorage['baidu.com'] 所有baidu.com下面的頁面都可以使用這塊空間
globalStorage['com']:所有com域名都可以 共享的使用這一塊空間
globalStorage[''] :所有頁面都可以使用的空間
現在Firefox只支持當前域下的globalStorage存儲, 如果使用公用域會導致一個這樣一個類似的錯誤“Security error” code: “1000”。
過期時間
按照HTML5的描述,globalStorage只在安全問題或者當用戶要求時才會過期,瀏覽器應該避免刪除那些正在被腳本訪問的數據,并且userdata應該是用戶可寫的。
因此我們的腳本要能夠控制過期時間,可以在globalStorage的某個區域存儲過期時間,在load的時候判斷是否過期,可以在一定程度上解決過期時間的問題。
存儲時,同時存儲過期時間
以上是我從網上查詢到的資料,為了兼容非IE瀏覽器“userdata”,我改進了之前我自己寫的一個
“userdata”(見 UserData使用總結) ,現在是兼容IE和支持globalStorage的瀏覽器了。
復制代碼 代碼如下:
function behaviorUserdata(udObj)
{
    var me = this;
    if(CMInfo.Bs_Name=='IE')    //IE下用userdata實現客戶端存儲
    {
        var loaded = '';    //當前已載入的文件名

        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;}
        }
        //預加載
        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);    //將對象數據保存到名為filename的XML文件里面
            return true;
        }
        //設置指定的屬性值
        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);
        }
        //設置一個系列的對象數據(即整個XML文件)失效
        this.remPartion = function(filename){
            if(me.exist(filename))
            {
                me.udObj.expires = me.setExpire(-1);
                me.udObj.save(filename);
            }
        }
        //設置有效期
        this.setExpire = function(sec){
            var oTimeNow = new Date();
            oTimeNow.setSeconds(oTimeNow.getSeconds() + parseInt(sec));
            return oTimeNow.toUTCString();
        }
    }else    //非IE下用globalStorage實現客戶端存儲
    {
        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;
        }

        //設置指定的屬性值
        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;
        }

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

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

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

JavaScript技術javascript globalStorage類代碼,轉載需保留來源!

鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯系我們修改或刪除,多謝。

主站蜘蛛池模板: 亚洲黄色高清 | 手机在线免费观看毛片 | 免费国产成人手机在线观看 | 7723日本高清完整版在线观看 | 国产免费毛片在线观看 | 日本久久久久亚洲中字幕 | 双腿被绑成M型调教PLAY照片 | 久久亚洲精品中文字幕60分钟 | 欧美日韩精品不卡在线观看 | 麻豆成人久久精品二区三区网站 | 伊人国产在线观看 | 成人精品视频 | 国产精品无码AV天天爽色欲 | 日日夜夜操操操 | 亚洲精品无夜久久久久久久久 | 国产精品久久久久影院色老大 | 亚洲一区高清 | 99热这里只有是精品 | 国产一区二区不卡老阿姨 | 亚洲日韩欧美国产中文在线 | 幸福草电视剧演员表介绍 | 网红主播 国产精品 开放90后 | 无套内射在线观看THEPORN | 国产成人精品综合在线 | 美女被爆羞羞天美传媒 | 饥渴的40岁熟妇完整版在线 | 全免费午夜一级毛片 | 大胸美女被吊起来解开胸罩 | 男人一进一出桶女人视频 | 免费看国产曰批40分钟 | 国产又黄又粗又爽又色的视频软件 | 91麻豆久久 | 亚洲乱亚洲乱妇在线观看 | 久久亚洲人成网站 | 大胸女晃奶动态图 | 暖暖视频在线高清播放 | 91热久久免费频精品99欧美 | 国产精品久久久久久久久久久 | 成人国产在线观看 | 桃花色影院 | 精品一区二区三区高清免费观看 |