Enkapsulasi JavaScript antara muka aplikasi Cookie_kemahiran javascript

WBOY
Lepaskan: 2016-05-16 15:46:30
asal
1107 orang telah melayarinya

Artikel ini merekodkan beberapa perkara yang saya pelajari daripada membaca buku semasa mempelajari Cookie, memperdalam ingatan saya dan menyusun serta merekodkannya untuk semakan pada masa hadapan.

Fungsi pembungkusan

Mengakses kuki ialah perkara yang menyusahkan secara lalai. Memandangkan kuki menyimpan maklumat melalui rentetan, adalah mudah untuk menukar jenis data maklumat yang dibaca semasa menjalankan operasi tugasan. Selain itu, rentetan maklumat kuki itu sendiri menjengkelkan, yang amat menyusahkan dalam aplikasi web yang sering menggunakan maklumat kuki. Oleh itu, anda perlu merangkum sendiri fungsi Cookie untuk menyediakan kecekapan pembangunan!

Tentukan fungsi Kuki(). Fungsi ini boleh menulis maklumat Kuki yang ditentukan, memadam maklumat Kuki yang ditentukan, dan membaca nilai Kuki bagi nama yang ditentukan Selain itu, dalam fungsi ini, tempoh sah maklumat Kuki boleh juga ditetapkan laluan, skop dan tetapan pilihan keselamatan yang sah. Kod lengkap:

var Cookie = function(name, value, options) {
    // 如果第二个参数存在
    if (typeof value != 'undefined') {
      options = options || {};
      if (value === null) {
        // 设置失效时间
        options.expires = -1;
      }
      var expires = '';
      // 如果存在事件参数项,并且类型为 number,或者具体的时间,那么分别设置事件
      if (options.expires && (typeof options.expires == 'number' || options.expires.toUTCString)) {
        var date;
        if (typeof options.expires == 'number') {
          date = new Date();
          date.setTime(date.getTime() + (options.expires * 24 * 60 * 60 * 1000));
        } else {
          date = options.expires;
        }
        expires = '; expires=' + date.toUTCString();
      }
      var path = options.path ? '; path=' + options.path : '', // 设置路径
        domain = options.domain ? '; domain=' + options.domain : '', // 设置域 
        secure = options.secure ? '; secure' : ''; // 设置安全措施,为 true 则直接设置,否则为空

      // 把所有字符串信息都存入数组,然后调用 join() 方法转换为字符串,并写入 Cookie 信息
      document.cookie = [name, '=', encodeURIComponent(value), expires, path, domain, secure].join(''); 
    } else { // 如果第二个参数不存在
      var CookieValue = null;
      if (document.cookie && document.cookie != '') {
        var Cookie = document.cookie.split(';');
        for (var i = 0; i < Cookies.length; i++) {
          var Cookie = (Cookie[i] || "").replace( /^\s+|\s+$/g, "");
          if (Cookie.substring(0, name.length + 1) == (name + '=')) {
            CookieValue = decodeURIComponent(Cookie.substring(name.length + 1));
            break;
          }
        }
      }
      return CookieValue;
    }
  };

Salin selepas log masuk

Cara menggunakan

Tulis maklumat kuki:

// 简单写入一条 Cookie 信息
cookie("user", "baidu");
// 写入一条 Cookie 信息,并且设置更多选项
cookie("user", "baidu", {
  expires: 10, // 有效期为 10 天
  path: "/", // 整个站点有效
  domain: "www.baidu.com", // 有效域名
  secure: true // 加密数据传输
});
Salin selepas log masuk

2. Baca maklumat kuki:

cookie("user");
Salin selepas log masuk

3. Padamkan maklumat kuki:

cookie("user", null);
Salin selepas log masuk

Saya akan berkongsi dengan anda kod berpakej

//向cookie写入数据
function writeCookie(name, value, days) {
 // 定义有效日期(cookie的有效时间)
 var expires = "";

 // 为有效日期赋值
 if (days) {
  var date = new Date();
	//设置有效期(当前时间+时间段)
  date.setTime(date.getTime() + (days * 24 * 60 * 60 * 1000));//时间段为毫秒数 
  expires = "; expires=" + date.toGMTString();
 }

 // 给cookie赋值 name, value和expiration date(有效期)
 document.cookie = name + "=" + value + expires + "; path=/";
}
//读取cookie数据
function readCookie(name) {
 var searchName = name + "=";
 var cookies = document.cookie.split(';');
 for(var i=0; i < cookies.length; i++) {
  var c = cookies[i];
  while (c.charAt(0) == ' ')
   c = c.substring(1, c.length);
  if (c.indexOf(searchName) == 0)
   return c.substring(searchName.length, c.length);
 }
 return null;
}
//清楚所有的cookie
function eraseCookie(name) {
 // 将时间设置成-1将清除存储在cookie中的数据
 writeCookie(name, "", -1);
}
Salin selepas log masuk

Akhir sekali, jika terdapat sebarang kesilapan atau soalan dalam artikel, sila tunjukkan. Mari galakkan anda semua!

Label berkaitan:
sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan