cookie记录用户名

在说如何用cookie记录用户名之前,我们先来说说cookie的工作原理:

cookie : 存储数据,当用户访问了某个网站(网页)的时候,我们就可以通过cookie来像访问者电脑上存储数据 ;
1.不同的浏览器存放的cookie位置不一样,也是不能通用的 ;
2.cookie的存储是以域名形式进行区分的 ;
3.cookie的数据可以设置名字的;
4.一个域名下存放的cookie的个数是有限制的,不同的浏览器存放的个数不一样 ;
5.每个cookie存放的内容大小也是有限制的,不同的浏览器存放大小不一样 ;
6.我们通过document.cookie来获取当前网站下的cookie的时候,得到的字符串形式的值,他包含了当前网站下所有的cookie。他会把所有的cookie通过一个分号+空格的形式串联起来;
7.如果我们想长时间存放一个cookie。需要在设置这个cookie的时候同时给他设置一个过期的时间 ;
8.cookie默认是临时存储的,当浏览器关闭进程的时候自动销毁;

cookie的存储方式:

document.cookie = '名字=值';
document.cookie = 'username=win';
document.cookie = 'age=23';
document.cookie = '名称=值;expires=' + 字符串格式的时间;(给cookie设置过期时间)
var oDate = new Date(); (给cookie设置过期时间)
oDate.setDate( oDate.getDate() + 5 );(给cookie设置过期时间)
alert(typeof oDate.toGMTString()); (把日期对象转成字符串的形式)
document.cookie = 'username=win;expires=' + oDate.toGMTString();(给cookie设置成转换后的过期时间)
 > ######封装一个 读取Cookie方法的函数:
 function getCookie(key) {   
   var arr1 = document.cookie.split('; ');  (username=win; age=23,把数据从分号开始拆成一个个cookie)
   for (var i=0; i<arr1.length; i++) {   (循环cookie)   
   var arr2 = arr1[i].split('=');     (username=win,,把数据从等号开始拆分) 
   if ( arr2[0] == key ) {         (判断截取的cookie值是否和key值相等)
   return decodeURI(arr2[1]);      
       }  
    }
 }
封装一个 设置Cookie的函数:
function setCookie(key, value, t) {   
 var oDate = new Date();   
 oDate.setDate( oDate.getDate() + t );   
 document.cookie = key + '=' + value + ';expires=' + oDate.toGMTString();
}
封装一个删除Cookie的函数:
 function removeCookie(key) {   
  setCookie(key, '', -1);
}
传参运行测试:
setCookie('sex','男', 10););
removeCookie('username');
removeCookie('age');
removeCookie('sex');  
完整示例:
 <script>
  window.onload = function() {      
  var oUsername = document.getElementById('username');   
  var oLogin = document.getElementById('login');   
  var oDel = document.getElementById('del');      
  if ( getCookie('username') ) {      
     oUsername.value = getCookie('username');   
  }      
 oLogin.onclick = function() {           
   alert('登陆成功');      
   setCookie('username', oUsername.value, 5);         
}     
   oDel.onclick = function() {      
   removeCookie('username');      
   oUsername.value = '';   
   }   
}
function getCookie(key) {   
   var arr1 = document.cookie.split('; ');  (username=win; age=23,把数据从分号开始拆成一个个cookie)
   for (var i=0; i<arr1.length; i++) {   (循环cookie)   
   var arr2 = arr1[i].split('=');     (username=win,,把数据从等号开始拆分) 
   if ( arr2[0] == key ) {         (判断截取的cookie值是否和key值相等)
   return decodeURI(arr2[1]);      
       }  
    }
 }
function setCookie(key, value, t) {   
 var oDate = new Date();   
 oDate.setDate( oDate.getDate() + t );   
 document.cookie = key + '=' + value + ';expires=' + oDate.toGMTString();
}
function removeCookie(key) {  
   setCookie(key, '', -1);
}
</script>
<body>   
  <input type="text" id="username" />    
  <input type="button" value="登陆" id="login" />    
 <input type="button" value="删除" id="del" />
</body>    

分享技术,分享快乐!

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 什么是 Cookie “cookie 是存储于访问者的计算机中的变量。每当同一台计算机通过浏览器请求某个页面时,就...
    恩德_b0c2阅读 540评论 0 3
  • 单例模式 适用场景:可能会在场景中使用到对象,但只有一个实例,加载时并不主动创建,需要时才创建 最常见的单例模式,...
    Obeing阅读 2,320评论 1 10
  • 背景在HTTP协议的定义中,采用了一种机制来记录客户端和服务器端交互的信息,这种机制被称为cookie,cooki...
    时芥蓝阅读 2,471评论 1 17
  • 作者:晚晴幽草轩www.jeffjade.com/2016/10/31/115-summary-of-cookie...
    饥人谷_Dylan阅读 1,266评论 0 51
  • 工厂模式类似于现实生活中的工厂可以产生大量相似的商品,去做同样的事情,实现同样的效果;这时候需要使用工厂模式。简单...
    舟渔行舟阅读 8,131评论 2 17

友情链接更多精彩内容