• <center id="sm46c"></center>
  • <dfn id="sm46c"></dfn>
  • <strike id="sm46c"></strike>
  • <cite id="sm46c"><source id="sm46c"></source></cite>
    • <strike id="sm46c"><source id="sm46c"></source></strike>
      <option id="sm46c"></option>
      国产精品天天看天天狠,女高中生强奷系列在线播放,久久无码免费的a毛片大全,国产日韩综合av在线,亚洲国产中文综合专区在,特殊重囗味sm在线观看无码,中文字幕一区二区三区四区在线,无码任你躁久久久久久老妇蜜桃

      關于Cookie的原理、作用,區別以及使用

      2018-4-16    seo達人

      如果您想訂閱本博客內容,每天自動發到您的郵箱中, 請點這里

      1、cookie的作用:

      我們在瀏覽器中,經常涉及到數據的交換,比如你登錄郵箱,登錄一個頁面。我們經常會在此時設置30天內記住我,或者自動登錄選項。那么它們是怎么記錄信息的呢,答案就是今天的主角cookie了,Cookie是由HTTP服務器設置的,保存在瀏覽器中,但HTTP協議是一種無狀態協議,在數據交換完畢后,服務器端和客戶端的鏈接就會關閉,每次交換數據都需要建立新的鏈接。就像我們去超市買東西,沒有積分卡的情況下,我們買完東西之后,超市沒有我們的任何消費信息,但我們辦了積分卡之后,超市就有了我們的消費信息。cookie就像是積分卡,可以保存積分,商品就是我們的信息,超市的系統就像服務器后臺,http協議就是交易的過程。


      2、機制的區別:

      session機制采用的是在服務器端保持狀態的方案,而cookie機制則是在客戶端保持狀態的方案,cookie又叫會話跟蹤機制。打開一次瀏覽器到關閉瀏覽器算是一次會話。說到這里,講下HTTP協議,前面提到,HTTP協議是一種無狀態協議,在數據交換完畢后,服務器端和客戶端的鏈接就會關閉,每次交換數據都需要建立新的鏈接。此時,服務器無法從鏈接上跟蹤會話。cookie可以跟蹤會話,彌補HTTP無狀態協議的不足。


      3、cookie的分類:

      cookie分為會話cookie和持久cookie,會話cookie是指在不設定它的生命周期expires時的狀態,前面說了,瀏覽器的開啟到關閉就是一次會話,當關閉瀏覽器時,會話cookie就會跟隨瀏覽器而銷毀。當關閉一個頁面時,不影響會話cookie的銷毀。會話cookie就像我們沒有辦理積分卡時,單一的買賣過程,離開之后,信息則銷毀。

      持久cookie則是設定了它的生命周期expires,此時,cookie像商品一樣,有個保質期,關閉瀏覽器之后,它不會銷毀,直到設定的過期時間。對于持久cookie,可以在同一個瀏覽器中傳遞數據,比如,你在打開一個淘寶頁面登陸后,你在點開一個商品頁面,依然是登錄狀態,即便你關閉了瀏覽器,再次開啟瀏覽器,依然會是登錄狀態。這就是因為cookie自動將數據傳送到服務器端,在反饋回來的結果。持久cookie就像是我們辦理了一張積分卡,即便離開,信息一直保留,直到時間到期,信息銷毀。


      4、簡單的使用cookie的代碼

      cookie的幾種常見屬性:document.cookie="key=value;expires=失效時間;path=路徑;domain=域名;secure;(secure表安全級別),

      cookie以字符串的形式保存在瀏覽器中。下面貼段代碼出來,是一個類似購物網站的將商品添加到購物車,再從購物車還原商品信息的過程,是自己用原生JS封裝的函數。

      封裝的cookie的存入,讀取以及刪除的函數:(這里是將信息以對象的形式存放到cookie中的,會用到JSON的知識)

      [javascript] view plain copy
      1. // key : cookie 名  
      2. // value : cookie 值  
      3. // options : 可選配置參數  
      4. //      options = {  
      5. //          expires : 7|new Date(), // 失效時間  
      6. //          path : "/", // 路徑  
      7. //          domain : "", // 域名  
      8. //          secure : true // 安全連接  
      9. //      }  
      10. function cookie(key, value, options) {  
      11.     /* read 讀取 */  
      12.     // 如果沒有傳遞 value ,則表示根據 key 讀取 cookie 值  
      13.     if (typeof value === "undefined") { // 讀取  
      14.         // 獲取當前域下所有的 cookie,保存到 cookies 數組中  
      15.         var cookies = document.cookie.split("; ");  
      16.         // 遍歷 cookies 數組中的每個元素  
      17.         for (var i = 0, len = cookies.length; i < len; i++) {  
      18.             // cookies[i] : 當前遍歷到的元素,代表的是 "key=value" 意思的字符串,  
      19.             // 將字符串以 = 號分割返回的數組中第一個元素表示 key,  
      20.             // 第二個元素表示 value  
      21.             var cookie = cookies[i].split("=");  
      22.             // 判斷是否是要查找的 key,對查找的 key 、value 都要做解碼操作  
      23.             if (decodeURIComponent(cookie[0]) === key) {  
      24.                 return decodeURIComponent(cookie[1]);  
      25.             }  
      26.         }  
      27.         // 沒有查找到指定的 key 對應的 value 值,則返回 null  
      28.         return null;  
      29.     }  
      30.   
      31.     /* 存入 設置 */  
      32.     // 設置 options 默認為空對象  
      33.     options = options || {};  
      34.     // key = value,對象 key,value 編碼  
      35.     var cookie = encodeURIComponent(key) + "=" + encodeURIComponent(value);  
      36.     // 失效時間  
      37.     if ((typeof options.expires) !== "undefined") { // 有配置失效時間  
      38.         if (typeof options.expires === "number") { // 失效時間為數字  
      39.             var days = options.expires,   
      40.                 t = options.expires = new Date();  
      41.             t.setDate(t.getDate() + days);  
      42.         }   
      43.         cookie += ";expires=" + options.expires.toUTCString();  
      44.     }  
      45.     // 路徑  
      46.     if (typeof options.path !== "undefined")  
      47.         cookie += ";path=" + options.path;  
      48.     // 域名  
      49.     if (typeof options.domain !== "undefined")  
      50.         cookie += ";domain=" + options.domain;  
      51.     // 安全連接  
      52.     if (options.secure)  
      53.         cookie += ";secure";  
      54.   
      55.     // 保存  
      56.     document.cookie = cookie;  
      57. }  
      58.   
      59. // 從所有的 cookie 中刪除指定的 cookie  
      60. function removeCookie(key, options) {  
      61.     options = options || {};  
      62.     options.expires = -1; // 將失效時間設置為 1 天前  
      63.     cookie(key, "", options);  
      64. }  

      下面是商品詳情頁的JS代碼

      [javascript] view plain copy
      1. // 找到所有的 “添加到購物車” 超級鏈接  
      2.             var links = $("a", $("#tab"));  
      3.             // 循環,為每個 “添加到購物車” 的超級鏈接添加點擊事件  
      4.             for (var i = 0, len = links.length; i < len; i++) {  
      5.                 links[i].onclick = function(){  
      6.                     // 獲取當前超級鏈接所在行的所有單元格  
      7.                     var _cells = this.parentNode.parentNode.cells;  
      8.                     // 獲取到即將添加到購物車中的商品信息  
      9.                     var _id = _cells[0].innerHTML,  
      10.                         _name = _cells[1].innerHTML,  
      11.                         _price = _cells[2].innerHTML;  
      12.                     // 將商品信息包裝到一個對象中  
      13.                     var product = {  
      14.                         id : _id,  
      15.                         name : _name,  
      16.                         price : _price,  
      17.                         amount : 1  
      18.                     };  
      19.   
      20.                     /* 將當前選購的商品對象保存到 cookie 中去 */  
      21.                     // 從 cookie 中讀取已有的保存購物車的數組結構  
      22.                     var _products = cookie("products");  
      23.                     if (_products === null// cookie 中不存在 products 名的 cookie  
      24.                         _products = [];  
      25.                     else // 存在,則解析 cookie 讀取到的字符串為 數組 結構  
      26.                         _products = JSON.parse(_products);  
      27.   
      28.                     // 將當前選購的商品追加到數組中保存  
      29.                     _products.push(product);  
      30.                     // 繼續將 _products 數組內容存回 cookie  
      31.                     cookie("products", JSON.stringify(_products), {expires:7});  
      32.                 }  
      33.             }  
      html代碼,css代碼大家可以自己寫

      [javascript] view plain copy
      1. <table id="tab">  
      2.         <tr>  
      3.             <td>序號</td>  
      4.             <td>名稱</td>  
      5.             <td>價格</td>  
      6.             <td>操作</td>  
      7.         </tr>  
      8.         <tr>  
      9.             <td>1</td>  
      10.             <td>空調</td>  
      11.             <td>3999</td>  
      12.             <td><a href="javascript:void(0);">添加到購物車</a></td>  
      13.         </tr>  
      14.         <tr>  
      15.             <td>2</td>  
      16.             <td>風扇</td>  
      17.             <td>288</td>  
      18.             <td><a href="javascript:void(0);">添加到購物車</a></td>  
      19.         </tr>  
      20.     </table>  
      21.     <a href="cart_購物車.html" target="_blank">查看購物車</a>  

      購物車還原商品信息:

      [javascript] view plain copy
      1. // 從 cookie 中讀取購物車已有的商品信息  
      2.             var _products = cookie("products");  
      3.             // 判斷購物車是否有商品  
      4.             if (_products === null || (_products = JSON.parse(_products)).length === 0)  
      5.                 return;  
      6.   
      7.             // 如果有商品,則顯示到頁面中  
      8.             $(".result")[0].innerHTML = "";  
      9.             for (var i = 0, len = _products.length; i < len; i++) {  
      10.                 // 當前遍歷到的商品對象  
      11.                 var prod = _products[i];  
      12.                 // 克隆 .row 的節點  
      13.                 var _row = $(".row")[0].cloneNode(true);  
      14.                 // 將當前商品對象的信息替換節點中對應的部分,用class名獲取到的節點返回類型是一個數組所以要在后面加上[0]  
      15.                 $(".index", _row)[0].innerHTML = prod.id; // 編號  
      16.                 $(".name", _row)[0].innerHTML = prod.name; // 名稱  
      17.                 $(".price", _row)[0].innerHTML = prod.price; // 價格  
      18.                 $(".amount", _row)[0].innerHTML = prod.amount; // 數量  
      19.                 $(".oper", _row)[0].innerHTML = "<a href='javascript:void(0);'>刪除</a>"  
      20.   
      21.                 // 將克隆的節點副本追加到 .result 的 div 中  
      22.                 $(".result")[0].appendChild(_row);  
      23.             };  
      24.   
      25.             // 為每個 “刪除” 的超級鏈接綁定點擊事件  
      26.             var links = $("a", $("#container"));  
      27.             for (var i = 0, len = links.length; i < len; i++) {  
      28.                 // links[i].index = i; // 為當前遍歷到的超級鏈接附加數據  
      29.                 links[i].product = _products[i]; //   
      30.                 links[i].onclick = function(){  
      31.                     // alert("你點擊的是第" + (this.index + 1) + "個連接");  
      32.                     var index = inArray(this.product, _products);  
      33.                       
      34.                     if (index !== -1) {  
      35.                         _products.splice(index, 1);  
      36.                     }  
      37.                     // 更新 cookie  
      38.                     cookie("products", JSON.stringify(_products), {expires:7});  
      39.   
      40.                     // 找出頁面中待刪除的行  
      41.                     var _row = this.parentNode.parentNode;  
      42.                     _row.parentNode.removeChild(_row);  
      43.                 };  
      44.             }  
      這里的$(' ')函數是自己封裝的函數,用于獲取到DOM節點,可以看下我關于getElementsByClassName的兼容那篇文章。

      藍藍設計www.li-bodun.cn )是一家專注而深入的界面設計公司,為期望卓越的國內外企業提供卓越的UI界面設計、BS界面設計 、 cs界面設計 、 ipad界面設計 、 包裝設計 、 圖標定制 、 用戶體驗 、交互設計、 網站建設 平面設計服務

      日歷

      鏈接

      個人資料

      藍藍設計的小編 http://www.li-bodun.cn

      存檔

      主站蜘蛛池模板: 亚洲色无码中文字幕| 国产偷v国产偷v亚洲高清| 国产精品成人一区二区三区| 亚洲高潮喷水无码AV电影| 久久综合伊人77777麻豆| 亚洲国产成人无码专区| 成人动漫久久| 日韩一区二区三区日韩精品| 久久se精品一区精品二区国产| 精品无码一区二区三区av| 九九热在线视频| 国产精品3p视频| 男女性高爱潮免费网站| 欧美中文字幕一区| 欧美人妻体内射射| 十八禁午夜福利免费网站| 婷婷丁香色| 久热re这里精品视频在线6| 婷婷丁香五月中文字幕| 亚洲AV综合色区无码一区| 少妇极品熟妇人妻| 中文字幕亚洲欧美日韩2019| 亚洲精品尤物av在线观看不卡| 亚洲第一极品精品无码久久| 6080yyy午夜理论片中无码| 日本人妻伦在线中文字幕| 人妻aⅴ中文字幕无码| 国产一区二区不卡在线| 人人妻人人做人人爽夜欢视频| 欧美成人一卡二卡三卡四卡| 亚洲国产中文字幕精品| 国产亚洲精品国产福利在线观看 | 高跟肉丝少妇A片在线| 91免费精品国偷自产在线在线| 2020年最新国产精品正在播放| 平度市| 国产激情视频在线观看首页| 免费观看一区二区| 国产超碰无码最新上传| 久久人人爽爽人人爽人人片av| 人妻少妇偷人无码视频|