DIV CSS 佈局教程網

 DIV+CSS佈局教程網 >> 網頁腳本 >> JavaScript入門知識 >> JavaScript基礎知識 >> JavaScript進階教程(第二課續)第1/2頁
JavaScript進階教程(第二課續)第1/2頁
編輯:JavaScript基礎知識     
現在你已經掌握了先進的字符串處理和相關數組概念,該是我們打開神奇的cookie魔瓶的時候了.cookie是記錄訪問你的站點的人的信息,它其實駐留在用戶的硬盤上,即使用戶已經離開你的站點,cookie在用戶的硬盤上仍然存在,如果該用戶再次返回你的站點,則該cookie就會被一起發回到你的服務器中,便於你統計和處理重復到訪者的信息.

    下面我們看一看一個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的信息。下一講裡我們講要講一個復雜的例子。
當前1/2頁 12下一頁閱讀全文
XML學習教程| jQuery入門知識| AJAX入門| Dreamweaver教程| Fireworks入門知識| SEO技巧| SEO優化集錦|
Copyright © DIV+CSS佈局教程網 All Rights Reserved