国产黄色免费网站_久久天天做天天爱综合色_精品国产一区久久久_成人黄色激情网站_久久成人在线视频_美女一区二区在线观看_亚洲精品免费一区亚洲精品免费精品一区 _91精品国产综合久久精品麻豆

關于Cookie的原理、作用,區(qū)別以及使用

2018-4-16    seo達人

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

1、cookie的作用:

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


2、機制的區(qū)別:

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


3、cookie的分類:

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

持久cookie則是設定了它的生命周期expires,此時,cookie像商品一樣,有個保質期,關閉瀏覽器之后,它不會銷毀,直到設定的過期時間。對于持久cookie,可以在同一個瀏覽器中傳遞數據,比如,你在打開一個淘寶頁面登陸后,你在點開一個商品頁面,依然是登錄狀態(tài),即便你關閉了瀏覽器,再次開啟瀏覽器,依然會是登錄狀態(tài)。這就是因為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.             // 循環(huán),為每個 “添加到購物車” 的超級鏈接添加點擊事件  
  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.                     // 繼續(xù)將 _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 的節(jié)點  
  13.                 var _row = $(".row")[0].cloneNode(true);  
  14.                 // 將當前商品對象的信息替換節(jié)點中對應的部分,用class名獲取到的節(jié)點返回類型是一個數組所以要在后面加上[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.                 // 將克隆的節(jié)點副本追加到 .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節(jié)點,可以看下我關于getElementsByClassName的兼容那篇文章。

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

日歷

鏈接

個人資料

藍藍設計的小編 http://www.newchinaweekly.com

存檔

亚洲视频在线播放| 在线观看午夜看亚太视频| 波多野结衣手机在线视频| 欧洲精品亚洲精品| 国产精品com| 国产富婆一区二区三区| 亚洲一区二区三区加勒比| 国产精品久久久久久亚洲影视| 成人精品一区二区三区电影免费| 欧美激情亚洲另类| 福利微拍一区二区| 日韩欧美一区二区在线视频| 精品免费在线观看| 亚洲欧美日韩系列| 久久久久久久久伊人| 国产一区二区久久| 韩日精品视频一区| 国内一区二区在线| 亚洲欧美国产77777| 欧美一区二区国产| 欧美尺度大的性做爰视频| 成人国产一区二区| 成人免费在线小视频| 男人日女人的bb| 在线中文字日产幕| 啦啦啦免费高清视频在线观看| 国产精品九九九九九九| 国产www免费观看| 在线观看免费观看在线| 精品人妻一区二区色欲产成人| 香蕉视频一区二区| 无国产精品白浆免费视| 高清视频在线www色| 亚洲不卡系列| 亚洲乱码在线| 国产精品videosex极品| av中文一区二区三区| 欧美日韩黄色一区二区| 久久久久久久影院| 一区二区成人国产精品 | 日本伊人精品一区二区三区介绍| 日韩久久在线| www.欧美黄色| 先锋影音av在线| 人妻va精品va欧美va| 三级黄色网址| av国产精品| 久久97超碰国产精品超碰| 色综合色综合色综合色综合色综合 | 一级毛片在线| 香蕉久久久久久| 日本在线不卡视频| 欧美性色视频在线| 日本欧美国产在线| 老司机午夜av| 国产69视频在线观看| 99久久久久成人国产免费| 四虎国产精品永久| 国产盗摄在线观看| 一区二区国产在线| 亚洲久本草在线中文字幕| 久久伊人色综合| 国产精品女人久久久久久| 国产欧美高清在线| 欧美熟妇另类久久久久久多毛| 日韩中文字幕电影| 中文字幕人成高视频| 久草中文在线观看| 欧美+日本+国产+在线a∨观看| 亚洲色图制服诱惑| 97欧美精品一区二区三区| 超碰97国产在线| 亚洲 欧美 日韩在线| 一本久中文高清| 国内激情视频在线观看| 久久九九精品视频| 激情久久一区| 在线视频你懂得一区| 国产女精品视频网站免费| 国产免费无码一区二区| 日韩精品成人一区| 激情se五月| 国产va在线视频| 毛片不卡一区二区| 日韩国产高清污视频在线观看| 亚洲不卡一卡2卡三卡4卡5卡精品| 欧美成人短视频| www.蜜臀av.com| www浪潮av99com| 2019中文字幕在线电影免费| 99热精品在线观看| 在线综合+亚洲+欧美中文字幕| www.亚洲人.com| 国内精品一区二区| 久久国产这里只有精品| 亚洲h视频在线观看| 日本高清中文字幕| 日本久久一二三四| 欧美视频精品在线观看| 麻豆成人av| 中文字幕在线播放一区二区| 中文字幕乱在线伦视频中文字幕乱码在线 | 国产精品99| 国产精品丝袜黑色高跟| 国产精品99免视看9| 欧美图片第一页| 成人免费视频网站在线看| 禁断一区二区三区在线| 国产成人精品影视| 91精品久久久久久久99蜜桃| 天堂社区 天堂综合网 天堂资源最新版 | 成人动漫在线视频| 免费观看成人毛片| 91免费在线播放视频| caoporn成人| 午夜av一区二区三区| 欧美日韩精品免费看| 欧美成人午夜精品免费| 成年人羞羞的网站| 激情久久久久| 综合欧美国产视频二区| 少妇欧美激情一区二区三区| 成年人在线免费| 香蕉成人在线| 亚洲一二三级电影| 欧美激情一区二区三区在线视频 | 久久久九九九九| 国产日韩中文在线| 日韩精品无码一区二区| 蜜臀av在线播放| 国产日本一区二区| 亚洲综合在线中文字幕| youjizz.com日本| 国产专区视频| 天堂久久久久va久久久久| 欧美性色欧美a在线播放| 日韩精品一区二区三区四| 四虎海外永久免费网址| 久久久123| 国产精品理论在线观看| 久久99精品久久久久久秒播放器 | av在线首页| 91美女片黄在线| 久久综合伊人77777蜜臀| 深爱五月激情网| 国自产拍在线网站网址视频| 99久久er热在这里只有精品15 | 99精品久久免费看蜜臀剧情介绍| 国产美女被下药99| 欧产日产国产69| 日本免费一区二区三区等视频| 色偷偷88欧美精品久久久| 成人免费毛片在线观看| 日韩一级片中文字幕| 成年人视频在线看| 久久久久久9999| 欧美专区一二三| 伊人影院蕉久552| 香蕉视频官网在线观看日本一区二区| 亚洲欧美日韩中文在线| 青草青青在线视频| 九九免费视频| 久久99精品久久久久久园产越南| 亚洲狠狠爱一区二区三区| 宅男一区二区三区| 黄色91视频| 亚洲精品蜜桃乱晃| 亚洲色无码播放| 女人裸体性做爰全过| 嗯啊主人调教在线播放视频 | 国产精品免费久久久久久| 日日夜夜狠狠操| 国产成人精品亚洲线观看| 日韩久久精品成人| 啪啪一区二区三区| av成人免费| 亚洲黄一区二区| www深夜成人a√在线| jizz亚洲女人高潮大叫| 精品国产百合女同互慰| 欧美女人性生活视频| 午夜影院网站| 国产精品久久久久影院| 狠狠干 狠狠操| 亚洲52av| 亚洲一区二区五区| 亚洲精品性视频| 中文字幕高清20页| 久久天堂av综合合色蜜桃网| 小泽玛利亚av在线| 在线免费av观看| 亚洲最大成人综合| 亚洲一区三区在线观看| 天天操天天搞| 校园激情久久| 亚洲 日韩 国产第一| 国内老熟妇对白xxxxhd| 亚洲久久一区二区| 蜜桃视频在线观看91| 97在线免费|