JS學習筆記 - 封裝 Cookie 應用接口

本文章記錄本人在學習 Cookie 中看書理解到的一些東西,加深記憶和而且整理記錄下來,方便以後的複習。數組

封裝函數

在默認的狀況下存取Cookie是一件比較麻煩的事情。因爲Cookie是經過字符串來存儲信息的,因此容易致使在執行賦值運算的時須要轉換讀取信息的數據類型。並且Cookie信息的字符串自己就使人討厭,在常常使用Cookie信息的 Web 應用中格外的不方便。因此須要自行的封裝一個Cookie函數來提供開發效率!安全

定義一個函數Cookie(),這個函數可以寫入指定的Cookie信息,刪除指定的Cookie信息,也可以讀取指定名稱的Cookie值,另外,在該函數中還能夠制定Cookie信息的有效期、有效路徑、做用域和安全性選項設置。完整的代碼:cookie

JavaScriptvar Cookie = function(name, value, options) {
        // 若是第二個參數存在
        if (typeof value != 'undefined') {
            options = options || {};
            if (value === null) {
                // 設置失效時間
                options.expires = -1;
            }
            var expires = '';
            // 若是存在事件參數項,而且類型爲 number,或者具體的時間,那麼分別設置事件
            if (options.expires && (typeof options.expires == 'number' || options.expires.toUTCString)) {
                var date;
                if (typeof options.expires == 'number') {
                    date = new Date();
                    date.setTime(date.getTime() + (options.expires * 24 * 60 * 60 * 1000));
                } else {
                    date = options.expires;
                }
                expires = '; expires=' + date.toUTCString();
            }
            var path = options.path ? '; path=' + options.path : '', // 設置路徑
                domain = options.domain ? '; domain=' + options.domain : '', // 設置域 
                secure = options.secure ? '; secure' : ''; // 設置安全措施,爲 true 則直接設置,不然爲空

            // 把全部字符串信息都存入數組,而後調用 join() 方法轉換爲字符串,並寫入 Cookie 信息
            document.cookie = [name, '=', encodeURIComponent(value), expires, path, domain, secure].join(''); 
        } else { // 若是第二個參數不存在
            var CookieValue = null;
            if (document.cookie && document.cookie != '') {
                var Cookie = document.cookie.split(';');
                for (var i = 0; i < Cookies.length; i++) {
                    var Cookie = (Cookie[i] || "").replace( /^\s+|\s+$/g, "");
                    if (Cookie.substring(0, name.length + 1) == (name + '=')) {
                        CookieValue = decodeURIComponent(Cookie.substring(name.length + 1));
                        break;
                    }
                }
            }
            return CookieValue;
        }
    };

如何使用

  1. 寫入Cookie信息:
JavaScript// 簡單寫入一條 Cookie 信息
cookie("user", "baidu");
// 寫入一條 Cookie 信息,而且設置更多選項
cookie("user", "baidu", {
    expires: 10, // 有效期爲 10 天
    path: "/", // 整個站點有效
    domain: "www.baidu2.com", // 有效域名
    secure: true // 加密數據傳輸
});

2.讀取Cookie信息:dom

JavaScriptcookie("user");

3.刪除Cookie信息:函數

JavaScriptcookie("user", null);

最後,若是文章有什麼錯誤和疑問的地方,請指出。與sf各位共勉!學習

相關文章
相關標籤/搜索