cookie

关于cookie的初识和运用(js和jq)

cookie是什么

---------------------------------------------------

cookie是浏览器提供的一种机制,它将document 对象的cookie属性提供给JavaScript。可以由JavaScript对其进行控制,而并不是JavaScript本身的性质。cookie是存于用户硬盘的一个文件,这个文件通常对应于一个域名,当浏览器再次访问这个域名时,便使这个cookie可用。因此,cookie可以跨越一个域名下的多个网页,但不能跨越多个域名使用。

cookie使用场合

---------------------------------------------------

(1)保存用户登录状态。例如将用户id存储于一个cookie内,这样当用户下次访问该页面时就不需要重新登录了,现在很多论坛和社区都提供这样的功能。 cookie还可以设置过期时间,当超过时间期限后,cookie就会自动消失。因此,系统往往可以提示用户保持登录状态的时间:常见选项有一个月、三个 月、一年等。

(2)跟踪用户行为。例如一个天气预报网站,能够根据用户选择的地区显示当地的天气情况。如果每次都需要选择所在地是烦琐的,当利用了 cookie后就会显得很人性化了,系统能够记住上一次访问的地区,当下次再打开该页面时,它就会自动显示上次用户所在地区的天气情况。因为一切都是在后 台完成,所以这样的页面就像为某个用户所定制的一样,使用起来非常方便。

(3)定制页面。如果网站提供了换肤或更换布局的功能,那么可以使用cookie来记录用户的选项,例如:背景色、分辨率等。当用户下次访问时,仍然可以保存上一次访问的界面风格。
 
cookie的用法

---------------------------------------------------

js方式:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
function setCookie(sName, sValue, oExpires, sPath, sDomain, bSecure) { //js设置cookie
         var sCookie = sName + '=' + encodeURIComponent(sValue);
          if (oExpires) {
            var date = new Date();
            date.setTime(date.getTime() + oExpires * 60 * 60 * 1000);
            sCookie += '; expires=' + date.toUTCString();
         }
         if (sPath) {
            sCookie += '; path=' + sPath;
         if (sDomain) {
            sCookie += '; domain=' + sDomain;
         }
          if (bSecure) {
            sCookie += '; secure' ;
         }
          document.cookie = sCookie;
  }
?
1
2
3
4
5
6
7
8
9
10
11
function getCookie(name){ //获取cookie
     var strCookie=document.cookie;
     var arrCookie=strCookie.split( "; " );
     for ( var i=0;i<arrCookie.length;i++){
     var arr=arrCookie[i].split( "=" );
       if (arr[0]==name){
         return decodeURIComponent(arr[1]);
       }
     }
     return "" ;
   }
?
1
2
3
4
5
6
7
8
function delCookie(name){ //删除cookie
// 该函数检查下cookie是否设置,如果设置了则将过期时间调到过去的时间;
//剩下就交给操作系统适当时间清理cookie啦
if (getCookie(name))
   {
       document.cookie = name + "=" + "; expires=Thu, 01-Jan-70 00:00:01 GMT" ;
   }
}

jq插件方式:

jq官网http://plugins.jquery.com/搜索cookie插件,几k的大小,使用非常方便:

<script type="text/javascript" src="js/jquery.js"></script>
<script type="text/javascript" src="js/jquery.cookie.js"></script>

在引入以上库文件后,使用方式如下:

?
1
2
3
4
5
6
7
<script>
     $.cookie( 'the_cookie' ); //读取Cookie值
     $.cookie( 'the_cookie' , 'the_value' ); //设置cookie的值
     $.cookie( 'the_cookie' , 'the_value' , {expires: 7, path: '/' , domain: 'jquery.com' , secure: true }); //新建一个cookie 包括有效期 路径 域名等
     $.cookie( 'the_cookie' , 'the_value' ); //新建cookie
     $.cookie( 'the_cookie' , null ); //删除一个cookie
  </script>

JS操作COOKIE实现备忘记录的方法

本文实例讲述了JS操作COOKIE实现备忘记录的方法。分享给大家供大家参考,具体如下:

具体涉及JS针对cookie的写入与获取操作,代码如下:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
function getCookie(c_name)
{
   if (document.cookie.length > 0)
   {
     c_start = document.cookie.indexOf(c_name + "=" );
     if (c_start!=-1)
     {
       c_start = c_start + c_name.length + 1;
       c_end = document.cookie.indexOf( ";" , c_start);
       if (c_end == -1)
       {
         c_end = document.cookie.length;
       }
       return unescape(document.cookie.substring(c_start,c_end))
     }
   }
   return ""
}
function setCookie(c_name,value,expiredays)
{
   var exdate = new Date();
   exdate.setDate(exdate.getDate() + expiredays);
   document.cookie=c_name+ "=" + escape(value) +
   ((expiredays== null ) ? "" : ";expires=" +exdate.toGMTString());
}

通过Jquery.cookie.js实现展示浏览网页的历史记录超管用

本文就是要利用cookie插件,获取用户浏览文章历史记录,并将用户最近浏览历史记录显示在页面。

在需要添加cookie的页面加上如下js

<script type="text/javascript" src="js/jquery.js"></script>
 <script type="text/javascript" src="js/jquery.cookie.js"></script>
 <script type="text/javascript">
 $(function(){
 var art_title = $("title").html();
 var art_url = document.URL;
 var history;
 var json="[";
 //json1是第一次注入cookie以后的第一个json,"此时还不是数组" 以点带面的处理
 var json1;
 var canAdd= true;
 //var json1=eval("({sitename:'dreamdu',sitedate:new Date(1980, 12, 17, 12, 0, 0)})");
 if(!$.cookie("history")){
 //第一次的时候需要初始化
 history = $.cookie("history","{title:\""+art_title+"\""+",url:\""+art_url+"\"}");
 }else {
 //已经存在
 history = $.cookie("history");
 json1 = eval("("+history+")");
 $(json1).each(function(){
  if(this.title==art_title){
  canAdd=false;
  return false;
  }
 })
 if(canAdd){
  $(json1).each(function(){
  json = json + "{\"title\":\""+this.title+"\",\"url\":\""+this.url+"\"},";
  })
  json = json + "{\"title\":\""+art_title+"\",\"url\":\""+art_url+"\"}]"; 
  $.cookie("history",json,{expires:1});
 }
 }
 })
 </script>

在展示历史记录的页面添加如下js

<script type="text/javascript" src="js/jquery.js"></script>
 <script type="text/javascript" src="js/jquery.cookie.js"></script>
 <script type="text/javascript">
 $(function(){ 
 if($.cookie("history")){
 var json = eval("("+$.cookie("history")+")"); 
 var list =""; 
 $(json).each(function(){
  list = list + "<li><a href='"+this.url+"' target='_blank'>"+this.title+"</a></li>";
  alert(this.url);
 })
 $("#list").html(list);;
 } 
 }); 
 </script>
 </head>

JS封装cookie操作函数实例(设置、读取、删除)

本文实例讲述了JS封装cookie操作函数。分享给大家供大家参考,具体如下:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
/*设置cookie*/
function setCookie(name, value, iDay)
{
   var oDate= new Date();
   oDate.setDate(oDate.getDate()+iDay);
   document.cookie=name+ '=' +value+ ';expires=' +oDate;
};
/*使用方法:setCookie('user', 'simon', 11);*/
/*获取cookie*/
function getCookie(name)
{
   var arr=document.cookie.split( '; ' ); //多个cookie值是以; 分隔的,用split把cookie分割开并赋值给数组
   for ( var i=0;i<arr[i].length;i++) //历遍数组
   {
     var arr2=arr[i].split( '=' ); //原来割好的数组是:user=simon,再用split('=')分割成:user simon 这样可以通过arr2[0] arr2[1]来分别获取user和simon
     if (arr2[0]==name) //如果数组的属性名等于传进来的name
     {
       return arr2[1]; //就返回属性名对应的值
     }
     return '' ; //没找到就返回空
   }
};
/*使用方法:getCookie('user')*/
/*删除cookie*/
function removeCookie(name)
{
   setCookie(name, 1, -1); //-1就是告诉系统已经过期,系统就会立刻去删除cookie
};
/*使用方法:removeCookie('user')*/

希望本文所述对大家JavaScript程序设计有所帮助。


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值