亚洲国产日韩欧美一区二区三区,精品亚洲国产成人av在线,国产99视频精品免视看7,99国产精品久久久久久久成人热,欧美日韩亚洲国产综合乱

JavaScript開(kāi)發(fā)購(gòu)物車(chē)之相關(guān)DOM操作(二)

上一節(jié),我們主要是獲取所要操作的節(jié)點(diǎn)對(duì)象

本節(jié)主要主要涉及cookie的設(shè)置獲取操作,采用單例設(shè)計(jì)模式進(jìn)行了封裝設(shè)計(jì)

單例設(shè)計(jì)模式 ? ?

下面是維基百科對(duì)單例模式的介紹:

在應(yīng)用單例模式時(shí),生成單例的類(lèi)必須保證只有一個(gè)實(shí)例的存在,很多時(shí)候整個(gè)系統(tǒng)只需要擁有一個(gè)全局對(duì)象,才有利于協(xié)調(diào)系統(tǒng)整體的行為。比如在整個(gè)系統(tǒng)的配置文件中,配置數(shù)據(jù)有一個(gè)單例對(duì)象進(jìn)行統(tǒng)一讀取和修改,其他對(duì)象需要配置數(shù)據(jù)的時(shí)候也統(tǒng)一通過(guò)該單例對(duì)象來(lái)獲取配置數(shù)據(jù),這樣就可以簡(jiǎn)化復(fù)雜環(huán)境下的配置管理。

單例模式的思路是:一個(gè)類(lèi)能返回一個(gè)對(duì)象的引用(并且永遠(yuǎn)是同一個(gè))和一個(gè)獲得該實(shí)例的方法(靜態(tài)方法,通常使用 getInstance 名稱)。那么當(dāng)我們調(diào)用這個(gè)方法時(shí),如果類(lèi)持有的引用不為空就返回該引用,否者就創(chuàng)建該類(lèi)的實(shí)例,并且將實(shí)例引用賦值給該類(lèi)保持的那個(gè)引用再返回。同時(shí)將該類(lèi)的構(gòu)造函數(shù)定義為私有方法,避免其他函數(shù)使用該構(gòu)造函數(shù)來(lái)實(shí)例化對(duì)象,只通過(guò)該類(lèi)的靜態(tài)方法來(lái)得到該類(lèi)的唯一實(shí)例。

完整形式:[]中是可選項(xiàng) ? ?

document.cookie ?= “name=value[;expires=date][;path=path-to-resource][;domain=域名][;secure]”

<script>
var cookieObj = {
    /*
     增加或修改cookie
     參數(shù):o 對(duì)象{}
     name:string cookie名
     value:string cookie值
     expires:Date對(duì)象 過(guò)期時(shí)間
     path:string 路徑限制
     domain:string 域名限制
     secure:boolean  true https  false或undeinfed
     */
    set: function(o) {
        var cookieStr = encodeURIComponent(o.name) + "=" + encodeURIComponent(o.value);
        //encodeURIComponent() 函數(shù)可把字符串作為 URI 組件進(jìn)行編碼。
        if(o.expires) {
            cookieStr += ";expires=" + o.expires;
        }
        if(o.path) {
            cookieStr += ";path=" + o.path;
        }
        if(o.domain) {
            cookieStr += ";domain=" + o.domain;
        }
        if(o.secure) {
            cookieStr += ";secure";
        }

        document.cookie = cookieStr;
    },
    /*
     刪除
     參數(shù):n string cookie的名字
     */
    del: function(n) {
        var date = new Date();
        date.setHours(-1);  //setHours() 方法用于設(shè)置指定的時(shí)間的小時(shí)字段。
        //this代表的是當(dāng)前函數(shù)的對(duì)象
        this.set({
            name: n,
            expires: date
        });
    },
    /*查找*/
    get: function(n) {
        n = encodeURIComponent(n);
        var cooikeTotal = document.cookie;
        var cookies = cooikeTotal.split("; ");
        //split() 方法用于把一個(gè)字符串分割成字符串?dāng)?shù)組。
        for(var i = 0, len = cookies.length; i < len; i++) {
            var arr = cookies[i].split("=");
            if(n == arr[0]) {
                return decodeURIComponent(arr[1]);
            //decodeURIComponent() 函數(shù)可對(duì) encodeURIComponent() 函數(shù)編碼的 URI 進(jìn)行解碼。    
            }
        }
    }
}
</script>

創(chuàng)建一個(gè)cookie.js文件把上面的JavaScript代碼放入其中。

<script type="text/javascript" src="cookie.js"></script>

以后從HTML頁(yè)面調(diào)用,實(shí)現(xiàn)功能模塊效果。


繼續(xù)學(xué)習(xí)
||
<script> var cookieObj = { /* 增加或修改cookie 參數(shù):o 對(duì)象{} name:string cookie名 value:string cookie值 expires:Date對(duì)象 過(guò)期時(shí)間 path:string 路徑限制 domain:string 域名限制 secure:boolean true https false或undeinfed */ set: function(o) { var cookieStr = encodeURIComponent(o.name) + "=" + encodeURIComponent(o.value); //encodeURIComponent() 函數(shù)可把字符串作為 URI 組件進(jìn)行編碼。 if(o.expires) { cookieStr += ";expires=" + o.expires; } if(o.path) { cookieStr += ";path=" + o.path; } if(o.domain) { cookieStr += ";domain=" + o.domain; } if(o.secure) { cookieStr += ";secure"; } document.cookie = cookieStr; }, /* 刪除 參數(shù):n string cookie的名字 */ del: function(n) { var date = new Date(); date.setHours(-1); //setHours() 方法用于設(shè)置指定的時(shí)間的小時(shí)字段。 //this代表的是當(dāng)前函數(shù)的對(duì)象 this.set({ name: n, expires: date }); }, /*查找*/ get: function(n) { n = encodeURIComponent(n); var cooikeTotal = document.cookie; var cookies = cooikeTotal.split("; "); //split() 方法用于把一個(gè)字符串分割成字符串?dāng)?shù)組。 for(var i = 0, len = cookies.length; i < len; i++) { var arr = cookies[i].split("="); if(n == arr[0]) { return decodeURIComponent(arr[1]); //decodeURIComponent() 函數(shù)可對(duì) encodeURIComponent() 函數(shù)編碼的 URI 進(jìn)行解碼。 } } } } </script>
提交重置代碼