cookie概述
在上一節(jié),曾經(jīng)利用一個(gè)不變的框架來存儲購物欄數(shù)據(jù),而商品顯示頁面是不斷變化的,盡管這樣能達(dá)到一個(gè)模擬 全局變量的功能,但并不嚴(yán)謹(jǐn)。例如在導(dǎo)航框架頁面內(nèi)右擊,單擊快捷菜單中的【刷新】命令,則所有的JavaScript變量都會丟失。因此,要實(shí)現(xiàn)嚴(yán)格的 跨頁面全局變量,這種方式是不行的, JavaScript中的另一個(gè)機(jī)制:cookie,則可以達(dá)到真正全局變量的要求。
cookie是瀏覽器提供的一種機(jī)制,它將document 對象的cookie屬性提供給JavaScript??梢杂蒍avaScript對其進(jìn)行控制,而并不是JavaScript本身的性質(zhì)。cookie是存于用戶硬盤的一個(gè)文件,這個(gè)文件通常對應(yīng)于一個(gè)域名,當(dāng)瀏覽器再次訪問這個(gè)域名時(shí),便使這個(gè)cookie可用。因此,cookie可以跨越一個(gè)域名下的多個(gè)網(wǎng)頁,但不能跨越多個(gè)域名使用。
不同的瀏覽器對cookie的實(shí)現(xiàn)也不一樣,但其性質(zhì)是相同的。例如在Windows 2000以及Windows xp中,cookie文件存儲于documents and settings/userName/cookie/文件夾下。通常的命名格式為:userName@domain.txt。
cookie機(jī)制將信息存儲于用戶硬盤,因此可以作為全局變量,這是它最大的一個(gè)優(yōu)點(diǎn)。它可以用于以下幾種場合。
(1)保存用戶登錄狀態(tài)。例如將用戶id存儲于一個(gè)cookie內(nèi),這樣當(dāng)用戶下次訪問該頁面時(shí)就不需要重新登錄了,現(xiàn)在很多論壇和社區(qū)都提供這樣的功能。 cookie還可以設(shè)置過期時(shí)間,當(dāng)超過時(shí)間期限后,cookie就會自動消失。因此,系統(tǒng)往往可以提示用戶保持登錄狀態(tài)的時(shí)間:常見選項(xiàng)有一個(gè)月、三個(gè) 月、一年等。
(2)跟蹤用戶行為。例如一個(gè)天氣預(yù)報(bào)網(wǎng)站,能夠根據(jù)用戶選擇的地區(qū)顯示當(dāng)?shù)氐奶鞖馇闆r。如果每次都需要選擇所在地是煩瑣的,當(dāng)利用了 cookie后就會顯得很人性化了,系統(tǒng)能夠記住上一次訪問的地區(qū),當(dāng)下次再打開該頁面時(shí),它就會自動顯示上次用戶所在地區(qū)的天氣情況。因?yàn)橐磺卸际窃诤?臺完成,所以這樣的頁面就像為某個(gè)用戶所定制的一樣,使用起來非常方便。
(3)定制頁面。如果網(wǎng)站提供了換膚或更換布局的功能,那么可以使用cookie來記錄用戶的選項(xiàng),例如:背景色、分辨率等。當(dāng)用戶下次訪問時(shí),仍然可以保存上一次訪問的界面風(fēng)格。
(4)創(chuàng)建購物車。正如在前面的例子中使用cookie來記錄用戶需要購買的商品一樣,在結(jié)賬的時(shí)候可以統(tǒng)一提交。例如淘寶網(wǎng)就使用cookie記錄了用戶曾經(jīng)瀏覽過的商品,方便隨時(shí)進(jìn)行比較。
當(dāng)然,上述應(yīng)用僅僅是cookie能完成的部分應(yīng)用,還有更多的功能需要全局變量。cookie的缺點(diǎn)主要集中于安全性和隱私保護(hù)。主要包括以下幾種:
(1)cookie可能被禁用。當(dāng)用戶非常注重個(gè)人隱私保護(hù)時(shí),他很可能禁用瀏覽器的cookie功能;
新聞熱點(diǎn)
疑難解答
圖片精選