|
下面我們看一看一個cookie應用的典型例子,我們在一個網頁中設置cookie,然后通過別的網頁讀取它.在使用該例子的時候,想想如果沒有cookie,你如何做到這一點.
由于cookies牽扯到向用戶的硬盤寫盤和讀取信息,所以就涉及一個保密性的問題.cookie有其作用范圍以及內在的局限性.其最重要的局限性在于:不是每個人的瀏覽器都歡迎cookies.即便是用戶的瀏覽器歡迎cookies,但用戶也有可能拒絕cookies的訪問(大部分人還是歡迎的)每個域名只分配20個cookies,所以要節省著什么它們.Cookies不得大于4 KB,當然4,000字節的容量是足夠的了.
了解了這些局限性之后我們開始學習如何設置cookies.設置一個基本的cookie很容易.你所需做的只是在一個cookie_name=value
表單中生成一個字符串,然后設置document.cookie屬性.唯一的技巧:cookie值中不能有空格,逗號或分號.好在你無需擔心這些問題,因為有一系列的函數可以幫你對cookies屬性編碼和解碼:
escape()和unescape().
下面的簡單例子中將你的姓名保存為一個cookie:
function setCookie()
{
var the_name = prompt("What's your name?","");
var the_cookie = "wm_Javascript=username:" + escape(the_name);
document.cookie = the_cookie;
alert("Thanks, now go to the next page.");
}
函數中間的兩行是關鍵:
var the_cookie = "wm_Javascript=username:" + escape (the_name);
如果我在提示框中輸入了"dave thau",該行代碼將生成一個字符串wm_Javascript=username:dave%20thau.這就是說我將把一個名為wm_Javascript的cookie保存到硬盤.該cookie的值是username:dave%20thau - 函數 escape()將"dave" 和"thau"之間的空格用%20做了替換.
當我們讀取cookie時,我們尋找名為wm_Javascript的cookie,然后提取username:dave%20thau,將其用 unescape()解碼,去掉username:.
document.cookie = the_cookie;
cookie現在就設置好了,很簡單.
一旦你在某用戶的硬盤上設置了cookie,讀取是件很容易的事.下面是讀取cookie范例的代碼:
function readCookie()
{
var the_cookie = document.cookie;
var broken_cookie = the_cookie.split(":");
var the_name = broken_cookie[1];
var the_name = unescape(the_name);
alert("Your name is: " + the_name);
}
第1行很重要.當你的瀏覽器打開一個網頁時,它調用任何和該網頁有關的cookie然后將其載入document.cookie屬性.
讀取cookie的技巧在于從中抽取出你需要的信息.注意在我們所設置的cookie是這樣的:wm_Javascript=username:dave%20thau.在該函數第1行之后的所有用于從該cookie中提取出用戶名(username).
var broken_cookie = the_cookie.split(":");
將cookie在分號處分割成兩部分.
var the_name = broken_cookie[1];
抓取分號后面的內容dave%20thau.
var the_name = unescape(the_name);
取消函數escape()的編碼替換.在本例中重新用空格替換了%20.
alert("Your name is: " + the_name);
顯示你的姓名.
這個例子使用的cookie只保存了很少的信息:用戶名,cookie最多可以保存多達4kb的信息。下一講里我們講要講一個復雜的例子。
JavaScript技術:JavaScript進階教程(第二課續)第1/2頁,轉載需保留來源!
鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯系我們修改或刪除,多謝。