色尼玛亚洲综合影院,亚洲3atv精品一区二区三区,麻豆freexxxx性91精品,欧美在线91

JavaScript進(jìn)階教程(第二課續(xù))第1/2頁

現(xiàn)在你已經(jīng)掌握了先進(jìn)的字符串處理和相關(guān)數(shù)組概念,該是我們打開神奇的cookie魔瓶的時(shí)候了.cookie是記錄訪問你的站點(diǎn)的人的信息,它其實(shí)駐留在用戶的硬盤上,即使用戶已經(jīng)離開你的站點(diǎn),cookie在用戶的硬盤上仍然存在,如果該用戶再次返回你的站點(diǎn),則該cookie就會(huì)被一起發(fā)回到你的服務(wù)器中,便于你統(tǒng)計(jì)和處理重復(fù)到訪者的信息.

    下面我們看一看一個(gè)cookie應(yīng)用的典型例子,我們?cè)谝粋€(gè)網(wǎng)頁中設(shè)置cookie,然后通過別的網(wǎng)頁讀取它.在使用該例子的時(shí)候,想想如果沒有cookie,你如何做到這一點(diǎn).

    由于cookies牽扯到向用戶的硬盤寫盤和讀取信息,所以就涉及一個(gè)保密性的問題.cookie有其作用范圍以及內(nèi)在的局限性.其最重要的局限性在于:不是每個(gè)人的瀏覽器都?xì)g迎cookies.即便是用戶的瀏覽器歡迎cookies,但用戶也有可能拒絕cookies的訪問(大部分人還是歡迎的)每個(gè)域名只分配20個(gè)cookies,所以要節(jié)省著什么它們.Cookies不得大于4 KB,當(dāng)然4,000字節(jié)的容量是足夠的了.

    了解了這些局限性之后我們開始學(xué)習(xí)如何設(shè)置cookies.設(shè)置一個(gè)基本的cookie很容易.你所需做的只是在一個(gè)cookie_name=value
表單中生成一個(gè)字符串,然后設(shè)置document.cookie屬性.唯一的技巧:cookie值中不能有空格,逗號(hào)或分號(hào).好在你無需擔(dān)心這些問題,因?yàn)橛幸幌盗械暮瘮?shù)可以幫你對(duì)cookies屬性編碼和解碼:

    escape()和unescape().

    下面的簡(jiǎn)單例子中將你的姓名保存為一個(gè)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.");
    }

    函數(shù)中間的兩行是關(guān)鍵:
    var the_cookie = "wm_Javascript=username:" + escape (the_name); 

    如果我在提示框中輸入了"dave thau",該行代碼將生成一個(gè)字符串wm_Javascript=username:dave%20thau.這就是說我將把一個(gè)名為wm_Javascript的cookie保存到硬盤.該cookie的值是username:dave%20thau - 函數(shù) escape()將"dave" 和"thau"之間的空格用%20做了替換.

    當(dāng)我們讀取cookie時(shí),我們尋找名為wm_Javascript的cookie,然后提取username:dave%20thau,將其用 unescape()解碼,去掉username:.

    document.cookie = the_cookie;

    cookie現(xiàn)在就設(shè)置好了,很簡(jiǎn)單.

    一旦你在某用戶的硬盤上設(shè)置了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行很重要.當(dāng)你的瀏覽器打開一個(gè)網(wǎng)頁時(shí),它調(diào)用任何和該網(wǎng)頁有關(guān)的cookie然后將其載入document.cookie屬性.

    讀取cookie的技巧在于從中抽取出你需要的信息.注意在我們所設(shè)置的cookie是這樣的:wm_Javascript=username:dave%20thau.在該函數(shù)第1行之后的所有用于從該cookie中提取出用戶名(username).

    var broken_cookie = the_cookie.split(":"); 
    將cookie在分號(hào)處分割成兩部分.

    var the_name = broken_cookie[1]; 
    抓取分號(hào)后面的內(nèi)容dave%20thau.

    var the_name = unescape(the_name);
    取消函數(shù)escape()的編碼替換.在本例中重新用空格替換了%20.

    alert("Your name is: " + the_name); 
    顯示你的姓名.

    這個(gè)例子使用的cookie只保存了很少的信息:用戶名,cookie最多可以保存多達(dá)4kb的信息。下一講里我們講要講一個(gè)復(fù)雜的例子。

JavaScript技術(shù)JavaScript進(jìn)階教程(第二課續(xù))第1/2頁,轉(zhuǎn)載需保留來源!

鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標(biāo)記有誤,請(qǐng)第一時(shí)間聯(lián)系我們修改或刪除,多謝。

主站蜘蛛池模板: 全椒县| 裕民县| 桦南县| 清远市| 靖远县| 吴忠市| 交城县| 昭苏县| 通河县| 阳泉市| 蛟河市| 冀州市| 尚志市| 双牌县| 新余市| 永平县| 阿拉善左旗| 诏安县| 新平| 金乡县| 彭泽县| 济源市| 察隅县| 临夏市| 密云县| 合阳县| 惠来县| 会昌县| 务川| 昔阳县| 香格里拉县| 黎平县| 永吉县| 呈贡县| 光泽县| 莱阳市| 高碑店市| 呼图壁县| 荃湾区| 潼关县| 南投县|