今天分享的是 jquery.cookie:這是一個輕量級的cookie插件,可以從瀏覽器上創建,讀取,寫入,刪除cookie;當然cookie雖然是保存在瀏覽器上,但是一定要上傳到服務器才能看到結果;
下載地址:http://www.jq22.com/ 進入後搜索jquery.cookie就行;
無論是B/S還是C/S,實際開發中,我覺得用到cookie最多的地方就是登錄頁記住密碼
下面我介紹一下這個插件的幾個屬性:
step 1:創建cookie
$.cookie('the_cookie', 'the_value');有兩個參數,一個是你創建的cookie的名稱,第二個是你要往cookie裏面存的值;當然,上面這種寫法創建的cookie的生命週期是瀏覽器關閉爲止;
$.cookie('the_cookie', 'the_value', { expires: 7 }); 第三個參數是你創建cookie的生命週期,單位爲天
$.cookie( 'the_cookie' , 'the_value' , { expires: 7, path: '/' }); 注:在默認情況下,只有設置 cookie的網頁才能讀取該 cookie。如果想讓一個頁面讀取另一個頁面設
置的cookie,必須設置cookie的路徑。cookie的路徑用於設置能夠讀取 cookie的頂級目錄。將這
個路徑設置爲網站的根目錄,可以讓所有網頁都能互相讀取 cookie (一般不要這樣設置,防止出現衝突) 。 4.讀取cookie: |
step 2:讀取cookie
如果你想讀取cookie,你則是根據你設置的cookie的名稱來讀取
$.cookie("the_cookie");
step 3:刪除cookie
刪除cookie其實就是變相的創建cookie的一個過程,上面我們創建cookie時直接保存了對應要保存的值,那麼刪除cookie其實就是保存時賦值爲空;
$.cookie("the_cookie",null)//官網上的這種寫法我不太支持,因爲我試過,當給cookie賦值爲努力時,下次登錄的時候,瀏覽器會直接把null拿出來放到對應的位置,並不算是徹底的刪除了cookie;所以我推薦的寫法是:
$.cookie("the_cookie","");
==========================================================================================
下面是幾個不太常用的參數,大概做一介紹,實際開發中完全可以不用:
1).expires: 365
定義cookie的有效時間,值可以是一個數字(從創建cookie時算起,以天爲單位)或一個Date 對
象。如果省略,那麼創建的cookie是會話cookie,將在用戶退出瀏覽器時被刪除。
2).path: '/'
默認情況:只有設置cookie的網頁才能讀取該cookie。
定義cookie的有效路徑。默認情況下, 該參數的值爲創建 cookie 的網頁所在路徑(標準瀏覽器的行爲) 。
如果你想在整個網站中訪問這個cookie需要這樣設置有效路徑:path: '/'。如果你想刪除一個定義
了有效路徑的 cookie,你需要在調用函數時包含這個路徑:$.cookie('the_cookie', null,
{ path: '/' });。 domain: 'example.com'
默認值:創建 cookie的網頁所擁有的域名。
3).secure: true
默認值:false。如果爲true,cookie的傳輸需要使用安全協議(HTTPS)。
4).raw: true
默認值:false。
默認情況下,讀取和寫入 cookie 的時候自動進行編碼和解碼(使用encodeURIComponent 編碼,
decodeURIComponent 解碼)。要關閉這個功能設置 raw: true 即可。
============================================================================================
下面我給大家把我開發過程中的一段代碼寫出來,可以供大家參考:
項目背景:springMVC+spring data jpa
開發模塊:登錄時記住密碼功能
step 1:導入相關包
<script src="res/skin/default/js/jquery-1.8.3.min.js"></script>
<script type="text/javascript"
src="res/skin/default/js/jquery.cookie.js"></script>
step 2:jsp代碼
<input type="text" id="userName"
name="userName" placeholder="請輸入賬號/電話號碼/別名"/>
<input type="passWord"
id="passWord" name="passWord" placeholder="請輸入密碼"/>
<input id="rememberPassword"
type="checkbox";">記住密碼
step 3:jquery代碼
<script>
//step 1:當鼠標點擊複選框時,創建一個持久化的cookie
var userName=null;
var passWord=null;
//限制爲:鼠標點擊登錄時判斷:
$("#submit").click(function(){
//如果被選中狀態,則創建cookie
if($("#rememberPassword").attr("checked")){
//創建cookie,並將用戶名和密碼保存進去
$.cookie('userName',$('#userName').val(), { expires: 7});
$.cookie('passWord',$('#passWord').val(), { expires: 7});
}else{
//如果複選框沒有被選中,則刪除cookie
$.cookie('userName', "");
$.cookie('passWord', "");
}
});
//頁面每次被加載的時候,都把cookie中的值取出來,然後存放到對應的文本框中
$(function(){
var userName=$.cookie('userName');
var passWord=$.cookie('passWord');
$("#userName").val(userName);
$("#passWord").val(passWord);
if(userName!=null&&userName!=""&&passWord!=null&&passWord!=""){
$("#rememberPassword").attr("checked",true);
}
});
</script>