JavaScript開發(fā)購物車之相關(guān)DOM操作(二)
上一節(jié),我們主要是取得所要操作的節(jié)點(diǎn)物件
本節(jié)主要主要涉及cookie的設(shè)定取得操作,採用單例設(shè)計(jì)模式進(jìn)行了封裝設(shè)計(jì)
單例設(shè)計(jì)模式 ?
以下是維基百科對單例模式的介紹:
在應(yīng)用單例模式時,產(chǎn)生單例的類別必須保證只有一個實(shí)例的存在,很多時候整個系統(tǒng)只需要擁有一個全局對象,才有利於協(xié)調(diào)系統(tǒng)整體的行為。例如在整個系統(tǒng)的設(shè)定檔中,配置資料有一個單例物件進(jìn)行統(tǒng)一讀取和修改,其他物件需要配置資料的時候也統(tǒng)一透過該單例物件來取得配置數(shù)據(jù),這樣就可以簡化複雜環(huán)境下的配置管理。
單例模式的想法是:一個類別能傳回一個物件的參考(並且永遠(yuǎn)是同一個)和一個獲得該實(shí)例的方法(靜態(tài)方法,通常使用 getInstance 名稱)。那麼當(dāng)我們呼叫這個方法時,如果類別所持有的引用不為空就回傳該引用,否者就建立該類別的實(shí)例,並且將實(shí)例引用賦值給該類別保持的那個參考再回傳。同時將該類別的建構(gòu)函數(shù)定義為私有方法,避免其他函數(shù)使用該建構(gòu)函式來實(shí)例化對象,只透過該類別的靜態(tài)方法來得到該類別的唯一實(shí)例。
完整形式:[]中是可選項(xiàng)
document.cookie ?= “name=value[;expires=date][;path=path-to-resource][;domain=網(wǎng)域][;secure]”
<script> var cookieObj = { /* 增加或修改cookie 參數(shù):o 對象{} name:string cookie名 value:string cookie值 expires:Date對象 過期時間 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è)置指定的時間的小時字段。 //this代表的是當(dāng)前函數(shù)的對象 this.set({ name: n, expires: date }); }, /*查找*/ get: function(n) { n = encodeURIComponent(n); var cooikeTotal = document.cookie; var cookies = cooikeTotal.split("; "); //split() 方法用于把一個字符串分割成字符串?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ù)可對 encodeURIComponent() 函數(shù)編碼的 URI 進(jìn)行解碼。 } } } } </script>
建立一個cookie.js檔案把上面??的JavaScript程式碼放入其中。
<script type="text/javascript" src="cookie.js"></script>
以後從HTML頁面調(diào)用,實(shí)作功能模組效果。