最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

JavaScript實現(xiàn)基于Cookie的存儲類實例

 更新時間:2015年04月10日 08:59:04   作者:liuli  
這篇文章主要介紹了JavaScript實現(xiàn)基于Cookie的存儲類,實例分析了javascript通過cookie實現(xiàn)數(shù)據(jù)存儲的技巧,非常具有實用價值,需要的朋友可以參考下

本文實例講述了JavaScript實現(xiàn)基于Cookie的存儲類。分享給大家供大家參考。具體分析如下:

通過這個JS類,你可以象使用session一樣使用cookie,非常簡單了!

/*
 * CookieStorage.js
 * 本類實現(xiàn)像localStorage和sessionStorage一樣的存儲API
 * 不同的是,它是基于HTTP Cookies實現(xiàn)的.
 */
function CookieStorage(maxage, path) {
// 兩個參數(shù)分別代表儲存有效期和作用域
 // 獲取一個儲存全部cookies的對象
 var cookies = (function() {
 // 類型之前介紹的getCookies函數(shù)
  var cookies = {};
  // 該對象最終會返回
  var all = document.cookie;
  // 以大字符串的形式獲取所有cookies的信息
  if (all === "")
  // 如果該屬性為空白符
   return cookies;
   // 返回一個空對象
  var list = all.split("; ");
  // 分離出名/值對
  for(var i = 0; i < list.length; i++) {
  // 遍歷每個cookie
   var cookie = list[i];
   var p = cookie.indexOf("=");
   // 找到第一個“=”符號
   var name = cookie.substring(0,p);
   // 獲取cookie的名字
   var value = cookie.substring(p+1);
   // 獲取cookie對應的值
   value = decodeURIComponent(value);
   // 對其值進行解碼
   cookies[name] = value;
   // 將名值對存儲到對象中
  }
  return cookies;
 }());
 // 將所有cookie的名字存儲到一個數(shù)組中
 var keys = [];
 for(var key in cookies) keys.push(key);
 // 現(xiàn)在定義儲存API公共的屬性和方法
 // 儲存的cookies的個數(shù)
 this.length = keys.length;
 // 返回第n個cookie的名字,如果n越界則返回null
 this.key = function(n) {
  if (n < 0 || n >= keys.length) return null;
  return keys[n];
 };
 // 返回指定名字的cookie值,如果不存在則返回null
 this.getItem = function(name){
 return cookies[name] || null;
 };
 // 儲存cookie值
 this.setItem = function(key, value) {
  if (!(key in cookies)) {
  // 如果要促成的cookie還不存在
   keys.push(key);
   // 將指定的名字加入到儲存所有cookie名的數(shù)組中
   this.length++;
   // cookies個數(shù)加一
  }
  // 將該名/值對數(shù)據(jù)存儲到cookie對象中.
  cookies[key] = value;
  // 開始正式設(shè)置cookie.
  // 首先將要儲存的cookie的值進行編碼
  // 同時創(chuàng)建一個“名稱=編碼后的值”形式的字符串
  var cookie = key + "=" + encodeURIComponent(value);
  // 將cookie的屬性也加入到該字符串中
  if (maxage) cookie += "; max-age=" + maxage;
  if (path) cookie += "; path=" + path;
  // 通過document.cookie屬性來設(shè)置cookie
  document.cookie = cookie;
 };
 // 刪除指定的cookie
 this.removeItem = function(key) {
  if (!(key in cookies)) return;
  // 如果cookie不存在,則什么也不做
  // 從內(nèi)部維護的cookies組刪除指定的cookie
  delete cookies[key];
  // 同時將cookie中的名字也在內(nèi)部的數(shù)組中刪除.
  // 如果使用ES5定義的數(shù)組indexOf()方法會更加簡單.
  for(var i = 0; i < keys.length; i++) {
  // 遍歷所有的名字
   if (keys[i] === key) { 
   // 當我們找到了要找的那個
    keys.splice(i,1); 
 // 將它從數(shù)組中刪除.
    break;
   }
  }
  this.length--; 
  // cookies個數(shù)減一
  // 最終通過將該cookie的值設(shè)置為空字符串
  //以及將有效期設(shè)置為0來刪除指定的cookie.
  document.cookie = key + "=; max-age=0";
 };
 // 刪除所有的cookies
 this.clear = function() {
  // 循環(huán)所有的cookies的名字,并將cookies刪除
  for(var i = 0; i < keys.length; i++)
   document.cookie = keys[i] + "=; max-age=0";
  // 重置所有的內(nèi)部狀態(tài)
  cookies = {};
  keys = [];
  this.length = 0;
 };
}

希望本文所述對大家的javascript程序設(shè)計有所幫助。

相關(guān)文章

  • JavaScript錯誤處理和調(diào)試方法詳解

    JavaScript錯誤處理和調(diào)試方法詳解

    代碼審查是調(diào)試JavaScript的重要方法,因為它允許多個開發(fā)人員一起處理代碼庫并在開發(fā)過程的早期發(fā)現(xiàn)錯誤,這篇文章主要給大家介紹了關(guān)于JavaScript錯誤處理和調(diào)試方法的相關(guān)資料,需要的朋友可以參考下
    2023-11-11
  • js實現(xiàn)彈窗效果

    js實現(xiàn)彈窗效果

    這篇文章主要為大家詳細介紹了js實現(xiàn)彈窗效果,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2020-08-08
  • JS實現(xiàn)的N多簡單無縫滾動代碼(包含圖文效果)

    JS實現(xiàn)的N多簡單無縫滾動代碼(包含圖文效果)

    這篇文章主要介紹了JS實現(xiàn)的N多簡單無縫滾動代碼,包含了文字及圖文等多種滾動效果,涉及JavaScript遞歸調(diào)用及定時函數(shù)觸發(fā)實現(xiàn)頁面元素動態(tài)變換的相關(guān)技巧,需要的朋友可以參考下
    2015-11-11
  • JavaScript實現(xiàn)的拼圖算法分析

    JavaScript實現(xiàn)的拼圖算法分析

    這篇文章主要介紹了JavaScript實現(xiàn)的拼圖算法,結(jié)合實例形式分析了javascript圖形拼接與判定算法相關(guān)操作技巧及注意事項,需要的朋友可以參考下
    2019-02-02
  • JS同源策略和跨域問題深入分析和解決

    JS同源策略和跨域問題深入分析和解決

    這篇文章主要介紹了JS同源策略和跨域問題深入分析和解決,在Web開發(fā)中,跨域問題是一個常見且必須解決的難題,當瀏覽器出于安全考慮限制不同源之間的資源交互時,開發(fā)者需要掌握多種方案來繞過這些限制,需要的朋友可以參考下
    2025-02-02
  • 5種處理js跨域問題方法匯總

    5種處理js跨域問題方法匯總

    本文匯總了解決js跨域問題的5種方法,除了最后一種使用flash解決跨域問題由于過于高端,沒有做出介紹外,其余四種都做了下總結(jié),這里推薦給有相同需求的小伙伴。
    2014-12-12
  • javascript實現(xiàn)行拖動的方法

    javascript實現(xiàn)行拖動的方法

    這篇文章主要介紹了javascript實現(xiàn)行拖動的方法,涉及javascript鼠標事件及頁面元素的相關(guān)操作技巧,需要的朋友可以參考下
    2015-05-05
  • JavaScript模板引擎用法實例

    JavaScript模板引擎用法實例

    這篇文章主要介紹了JavaScript模板引擎用法,涉及javascript實現(xiàn)模板的定義與字符替換的相關(guān)技巧,具有一定參考借鑒價值,需要的朋友可以參考下
    2015-07-07
  • 用js控制視頻播放進度基本示例代碼

    用js控制視頻播放進度基本示例代碼

    寫前端的時候,很多的時候是需要支持要網(wǎng)頁視頻播放的功能,下面這篇文章主要給大家介紹了關(guān)于用js控制視頻播放進度的相關(guān)資料,文中通過代碼介紹的非常詳細,需要的朋友可以參考下
    2025-04-04
  • 為數(shù)據(jù)添加append,remove功能

    為數(shù)據(jù)添加append,remove功能

    為數(shù)據(jù)添加append,remove功能...
    2006-10-10

最新評論

乡城县| 林西县| 思南县| 武汉市| 曲沃县| 浦江县| 元谋县| 堆龙德庆县| 河曲县| 通州区| 吉木萨尔县| 渑池县| 新郑市| 习水县| 上饶市| 微山县| 四平市| 平武县| 拉萨市| 象山县| 永平县| 科技| 乐陵市| 鞍山市| 冀州市| 博罗县| 怀来县| 闵行区| 合阳县| 宜良县| 襄垣县| 扎鲁特旗| 巴青县| 余干县| 张家港市| 迭部县| 静乐县| 梁河县| 上虞市| 宜春市| 太和县|