jquery中的cookie


關於cookie,一直是個很敏感的問題,以前對於cookie的處理,都是用原生的方式處理,創建函數對cookie進行處理,創建,設置以及刪除。。

function setCookie(key,value,day){
            var date = new Date(); //獲取時間對象
            var nowDate = date.getDate(); //返回日期月份中的天數(1-31)

            date.setDate(nowDate + day); //設置日期月份的天數

            //document.cookie = key+"="+value+"; expires="+date; //將新增的名值對和指定的過期時間寫入cookie
            var cookie = key+"="+value+"; expires="+date; //本地模擬
            return cookie;
        }
        //獲取cookie
        var cookie = "name1=aa; name2=bb; name3=cc; name4=dd"; //模擬cookie

        function getCookie(key){
            var arr = cookie.split("; "); //先通過分號和空格將字符串解析成數組["name1=aa", "name2=bb"…]
            for (var i=0; i<arr.length; i++){
                var arr2 = arr[i].split("="); //通過等號再度解析["name1", "aa"]
//                console.log(arr2);
                if (arr2[0] == key){ //通過下標取得key,與傳進來的key相比較,然后返回對應的value
                    return arr2[1];
                }
            }
        }
        //移除cookie
        function removeCookie(removeKey){
            
            return setCookie(removeKey,".",-1); //移除cookie的簡便方法就是設置(時間戳)expires屬性等於0,或者等於一個過去的日期。
        }

但是jq還是為我們提供了強大的cookie功能,避免我們在操作cookie的時候因為數據的繁瑣而產生錯誤的。

jquery.cookie.js

1).新添加一個會話 cookie:$.cookie('the_cookie', 'the_value');

注:當沒有指明 cookie有效時間時,所創建的cookie有效期默認到用戶關閉瀏覽器為止,所以被稱為“會話cookie(session cookie)”。

2).創建一個cookie並設置有效時間為 7天:$.cookie('the_cookie', 'the_value', { expires: 7 });

注:當指明了cookie有效時間時,所創建的cookie被稱為“持久 cookie (persistent  cookie)”。

3).創建一個cookie並設置 cookie的有效路徑:$.cookie('the_cookie', 'the_value', { expires: 7, path: '/' });

注:在默認情況下,只有設置 cookie的網頁才能讀取該 cookie。如果想讓一個頁面讀取另一個頁面設置的cookie,必須設置cookie的路徑。cookie的路徑用於設置能夠讀取 cookie的頂級目錄。將這個路徑設置為網站的根目錄,可以讓所有網頁都能互相讀取 cookie (一般不要這樣設置,防止出現沖突) 。

4) .獲取cookie

$.cookie('the_cookie'); // cookie存在 => 'the_value'
 
$.cookie('not_existing'); // cookie不存在 => null

5) .刪除cookie,通過傳遞null作為cookie的值即可:$.cookie('the_cookie', null);

代碼寫法:

var COOKIE_NAME = 'username'; 
 if( $.cookie(COOKIE_NAME) ){ 
   $("#username").val( $.cookie(COOKIE_NAME) ); 
 } 
 $("#check").click(function(){ 
   if(this.checked){ 
     $.cookie(COOKIE_NAME, $("#username").val() , { path: '/', expires: 10 }); 
     //var date = new Date(); 
     //date.setTime(date.getTime() + (3 * 24 * 60 * 60 * 1000)); //三天后的這個時候過期 
     //$.cookie(COOKIE_NAME, $("#username").val(), { path: '/', expires: date }); 
   //$.cookie('name', ‘value', {expires: 7, path: ‘/', domain: ‘jquery.com', secure: true});
}else{ $.cookie(COOKIE_NAME, null, { path: '/' }); //刪除cookie } });

expires: (Number | Date)  :有效期,可以設置一個整數作為有效期(單位:天),也可以設置一個日期對象作為Cookie的過期日期。如果指定日期為負數,那么此cookie將被刪除;如果不設置或者設置為null,那么此cookie將被當作Session Cookie處理,並且在瀏覽器關閉后刪除
path:  (String) : Cookie的路徑屬性,默認是創建該cookie的頁面路徑
domain: (String)  : Cookie的域名屬性,默認是創建該cookie的頁面域名
secure: (Boolean)  :如果設為true,那么此cookie的傳輸會要求一個安全協議,例如HTTPS。

//部分內容轉載自網絡。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM