JavaScript cookie詳解
一、cookie基本介紹
cookie是document的對象。cookie可以使得JavaScript代碼能夠在用戶的硬盤上持久地存儲數據,並且能夠獲得以這種方式存儲的數據。cookie還可以用於客戶端腳本化。
cookie數據可以自動地在Web浏覽器好Web服務器之間傳遞。
在浏覽器中可以通過navigator.cookieEnabled屬性檢查浏覽器的cookie功能是否被激活。
二、cookie的基本屬性
每個cookie都有四個可選的屬性
1.expires
指定了cookie的生存期。將expires屬性設定為未來的一個過期時間,即可讓cookie在過期後失效。
現在用max-age屬性來代替它,max-age用秒來設置cookie的生命期。一旦超過了max-age的生命期,那個cookie就會被浏覽器自動地從cookie文件中刪除掉
2.path
指定了與cookie關聯在一起的網頁。默認情況下,cookie會和創建它的網頁以及與這個網頁處於同一個目錄下的網頁和處於該目錄的子目錄下的網頁關聯。
這個主要設置了cookie對於網頁的可見性。加入將path設置為www.a.com/list,那麼www.a.com/list/a.html和www.a.com/list/b.html都可以訪問cookie,但www.a.com/comtain不 能訪問該cookie。但是如果將path設置為www.a.com/,那麼www.a.com/list和www.a.com/contain都可以訪問cookie。
3.domain
默認只有來自同一Web服務器的頁面才能訪問cookie,可以設置domain。例如把cookie的path設定為/,cookie設定為.example.com,則所有位於catalog.example.com和 orders.example.com的網頁以及位於.example.com域名下其他服務器的網頁都能訪問這個cookie
注意:不能講一個cookie的域設置為服務器所在的域之外的域
4.source
source為一個布爾值,true由不安全的HTTP傳輸(默認);false只在浏覽器和服務器通過HTTPS或其他的安全協議連接下才被傳輸。
三、cookie的應用
一個cookie是一個字符串,有name=value這種結構組合而成。cookie的例子:
version=1.0;max-age=3600
注意每段字符串之間不能包含逗號或者空格等,因此在寫入cookie時需要使用encodeURIComponent去掉變量中的相關符號,讀取時利用的decodeURIComponent
要創建一個能夠持續存在一年的cookie:
document.cookie = “version=” + document.lastModified + “;max-age=” + (60*60*24*365);
四、總結
雖然現在浏覽器的存儲技術越來越多,HTML5也為localStorage帶來了更高的性能體驗,但是cookie仍然可以為我們處理很多事務,方便小型數據的交流。合理的使用cookie,可以讓我們的應用程序更加靈活。
感謝閱讀,希望能幫助到大家,謝謝大家對本站的支持!