JavaScript之讀取和寫入cookie

  首先先讓咱們簡單地瞭解一下cookie.
  在咱們製做網頁的過程當中,常常須要把信息從一個頁面傳遞給另外一個頁面,這時候就須要用到JavaScript中的cookie機制了。簡單說來,cookie提供了一種便捷的方式,可以在用戶的計算機上保存少許數據而且遠程得到它們,從而讓網站能夠保存一些細節信息,好比用戶的習慣設置或是上一次訪問網站的時間。cookie自己是一些短小的信息,可以由頁面保存在用戶的計算機上,而後被其餘頁面讀取。cookie通常都設置爲在必定時間後失效。
  固然,cookie也有侷限之處:瀏覽器對於可以保存的cookie數量有所限制,一般是幾百個或者多一點。通常狀況下,每一個域名20個cookies是容許的,而每一個域最多能保存4KB的cookie.除了大小限制可能致使的問題,也有不少緣由會引發硬盤上的cookie消失,好比達到有效期限了,或是用戶清理了cookie信息,或是換用了其餘瀏覽器。所以,cookie不適合用來保存重要數據,在編寫代碼時也要考慮到cookie獲取異常的處理方法。
  在JavaScript中,使用document對象的cookie屬性來儲存和獲取cookie.一般,document.cookie裏的信息是由成對的名稱和值組成的字符串,每一對數據的形式是:html

name=value;瀏覽器

  下面咱們將經過一個簡單的例子來展現在JavaScript中如何讀取和寫入cookie.
  首先是createCookie.html,在該頁面中會建立一個cookie,完整的代碼以下:服務器

<html>
<head>
    <title>createCookie</title>
    <script>
        function createCookie(){
            //get name and password
            var name = document.getElementById("name").value;
            var pwd = document.getElementById("pwd").value;
            //create cookie
            document.cookie = name+'|'+pwd;
            //go to showCookie.html page
            window.location.href = "showCookie.html";
        }
    </script>
</head>
<body>
    Userame:&nbsp;&nbsp;<input id="name" type="text" /><br><br>
    Password:&nbsp;&nbsp;<input id="pwd" type="password" /><br><br>
    <button onclick="createCookie()">Submit</submit>
</body>
</html>

該頁面的截圖以下:
cookie


createCookie.html

點擊submit按鈕,就會建立一個cookie,在該cookie中保存了Username和Password信息,而且會跳轉到showCookie.html頁面。其中,showCookie.html頁面的完整代碼以下:

<html>
<head>
    <title>showCookie</title>
    <script>
        function showCookie(){
            //document.cookie is a string, using split() function to get cookie date in array form 
            var arr = document.cookie.split('|');
            //processing data in cookie
            var cookie_info = 'Data in cookie:<br>username is:&nbsp;&nbsp;'+arr[0]+"<br>password is:&nbsp;&nbsp;"+arr[1]+'<br>';
            //set content of element of id "res"
            document.getElementById("res").innerHTML = cookie_info;
        }
    </script>
</head>
<body>
    <button onclick="showCookie()">Show Cookie</button>
    <p id="res"></p>
</body>
</html>

頁面截圖以下:
網站


showCookie.html

點擊show Cookie按鈕就會顯示cookie裏面的信息了。
  下面,咱們將會在本地和服務器上分別跑這個程序,分別在IE瀏覽器和Chrome瀏覽器上運行這個程序,看看cookie的運行狀況。
  首先咱們在本地運行這個程序,咱們將上述兩個文件都放在E盤中。先在IE瀏覽器上運行,在createCookie.html頁面上輸入信息,並點擊submit按鈕,截圖以下:

IE瀏覽器createCookie.html

跳轉到showCookie.html頁面後,點擊show Cookie按鈕,頁面截圖以下:

本地 IE瀏覽器showCookie.html

cookie在本地環境中的IE瀏覽器中運行正常。
  接下來,咱們看看在Chrome瀏覽器中運行狀況,首先在Chrome瀏覽器中打開createCookie.html頁面,輸入信息,並點擊submit按鈕,截圖以下:

本地 Chrome瀏覽器createCookie.html

跳轉到showCookie.html頁面後,點擊show Cookie按鈕,頁面截圖以下:

Chrome瀏覽器showCookie.html

一樣的程序,此次cookie在Chrome瀏覽器中卻運行失敗了。
  接着讓咱們在服務器中運行這個程序,須要用到xampp,並打開Apache服務器,將上述兩個html文件放在xampp安裝文件夾下的htdocs文件夾下(具體的操做方法能夠參考這篇博客: JavaScript之使用AJAX(適合初學者))。咱們如今IE瀏覽器中運行該程序,在IE瀏覽器中輸入網址: http://localhost/createCookie.html,截圖以下

服務器 IE瀏覽器 createCookie.html

點擊Submit按鈕,跳轉到showCookie.html頁面,並點擊show Cookie按鈕,截圖以下:

服務器 IE瀏覽器 showCookie.html

  而後咱們在Chrome瀏覽器中輸入網址: http://localhost/createCookie.html,截圖以下

服務器 Chrome瀏覽器 createCookie.html

點擊Submit按鈕,跳轉到showCookie.html頁面,並點擊show Cookie按鈕,截圖以下:

服務器 Chrome瀏覽器 showCookie.html
此次在服務器環境下,IE瀏覽器和Chrome瀏覽器的cookie都運行正常!   本次分享到此結束,歡迎你們交流~~
相關文章
相關標籤/搜索