最近項目需要做網(wǎng)站,所以我一個后臺也要負責要前端风响,所以最近最幾篇文章就講下我最近項目用到第三方js組件吧振坚。
Cookie是由服務器端生成媒佣,發(fā)送給User-Agent(一般是瀏覽器),瀏覽器會將Cookie的key/value保存到某個目錄下的文本文件內(nèi)谴仙,下次請求同一網(wǎng)站時就發(fā)送該Cookie給服務器(前提是瀏覽器設置為啟用cookie)迂求。
例如購物網(wǎng)站存儲用戶曾經(jīng)瀏覽過的產(chǎn)品列表,或者門戶網(wǎng)站記住用戶喜歡選擇瀏覽哪類新聞晃跺。 在用戶允許的情況下揩局,還可以存儲用戶的登錄信息,使得用戶在訪問網(wǎng)站時不必每次都鍵入這些信息掀虎?
cookie的話其實用js也可以操作凌盯,但是為了方便,我們直接用個cookie的插件--jQuery.Cookie.js烹玉,是一個輕量級的Cookie管理插件驰怎。
我們可以直接用它的CDN加速下載地址,也稍微減輕下服務器壓力吧二打。在http://www.bootcdn.cn/jquery-cookie/可以尋找各個版本的jquery-cookie的cdn地址县忌。
我們直接就用最新版的吧。因為前后端沒分離,所以用的是模板引擎freemarker症杏。
在需要使用cookie的頁面ftl添加這行代碼引入js装获。
<script type="text/javascript" src="https://cdn.bootcss.com/jquery-cookie/1.4.1/jquery.cookie.js"></script>
如果是硬盤里某個靜態(tài)的html文件引入jquery——cookie其實也不能使用cookie。
必須要部署到服務器才能跑,才能設置cookie厉颤。
為了實現(xiàn)某些功能穴豫,把一些數(shù)據(jù)存儲到用戶的本地計算機。
注意事項:同源
1)必須是服務環(huán)境
2)不安全 逼友, 因為它存在了用戶的本地機器上(臨時存儲)
3)過期時間:
默認: session —— 會話時間(會話結束绩郎、瀏覽器關閉,cookie消失)
4)大小翁逞、容量 一般 4K 左右,有的瀏覽器還有條數(shù)的限制
—— 珍貴的資源
5)不管看到的是什么溉仑,值都是String類型
使用方法
1.新添加一個會話 cookie:
$.cookie('the_cookie', 'the_value');
當沒有指明 cookie有效時間時挖函,所創(chuàng)建的cookie有效期默認到用戶關閉瀏覽器為止
2.創(chuàng)建一個cookie并設置有效時間為 10天:
$.cookie('the_cookie', 'the_value', { expires: 10 });
3.創(chuàng)建一個cookie并設置 cookie的有效路徑:
$.cookie('the_cookie', 'the_value', { expires: 10, path: '/' });
在默認情況下,只有設置 cookie的網(wǎng)頁才能讀取該 cookie浊竟。如果想讓一個頁面讀取另一個頁面設
置的cookie怨喘,必須設置cookie的路徑。cookie的路徑用于設置能夠讀取 cookie的頂級目錄振定。將這
個路徑設置為網(wǎng)站的根目錄必怜,可以讓所有網(wǎng)頁都能互相讀取 cookie (一般不要這樣設置,防止出現(xiàn)沖突) 后频。
關于cookie的path設置需要注意梳庆,如果不設置path:'/'的話,path則會根據(jù)目錄自動設置[如:http://www.xxx.com/user/,path會被設置為 '/user']
4.讀取cookie:
$.cookie('the_cookie'); // cookie存在 => 'the_value'
$.cookie('not_existing'); // cookie不存在 => null
6.修改一個cookie 的值
設置方法一樣:
$.cookie('name','新的value',{
path: // 如果當前程序的path和cookie的path不一致卑惜,那么這里一定要指定path參數(shù)
});
6.刪除cookie膏执,通過傳遞null作為cookie的值即可:
這種刪除方式的話,如果到時用$.cookie('the_cookie');獲取的是“null”的字符串露久,如果后臺使用@CookieValue獲取cookie更米,那么獲取的cookie的值為“null”的字符串,這個“null”字符串后臺處理要特別注意
$.cookie('the_cookie', null);
使用$.cookie("token", { expires: -1 })刪除cookie,會出現(xiàn)這情況毫痕。
$.cookie("token", { expires: -1 })
其他說明
1.expires: 365
定義cookie的有效時間征峦,值可以是一個數(shù)字(從創(chuàng)建cookie時算起,以天為單位)或一個Date 對
象消请。如果省略栏笆,那么創(chuàng)建的cookie是會話cookie,將在用戶退出瀏覽器時被刪除臊泰。
2.path: '/'
默認情況:只有設置cookie的網(wǎng)頁才能讀取該cookie竖伯。
定義cookie的有效路徑。默認情況下, 該參數(shù)的值為創(chuàng)建 cookie 的網(wǎng)頁所在路徑(標準瀏覽器的行為) 七婴。
如果你想在整個網(wǎng)站中訪問這個cookie需要這樣設置有效路徑:path: '/'祟偷。如果你想刪除一個定義
了有效路徑的 cookie,你需要在調用函數(shù)時包含這個路徑:$.cookie('the_cookie', null,
{ path: '/' });打厘。 domain: 'example.com'
默認值:創(chuàng)建 cookie的網(wǎng)頁所擁有的域名修肠。
3.secure: true
默認值:false。如果為true户盯,cookie的傳輸需要使用安全協(xié)議(HTTPS)嵌施。
4.raw: true
默認值:false。
默認情況下莽鸭,讀取和寫入 cookie 的時候自動進行編碼和解碼(使用encodeURIComponent 編碼吗伤,
decodeURIComponent 解碼)。要關閉這個功能設置 raw: true 即可硫眨。
足淆。######參考文章:
http://www.reibang.com/p/eb8ca0e991fc
http://www.jb51.net/article/44557.htm
http://www.cnblogs.com/qiao20/p/5729447.html