jQuery.cookie.js 提供了jQuery中非常简单的操作cookie的方法。

    $.cookie('the_cookie'); // 获得cookie
$.cookie('the_cookie', 'the_value'); // 设置cookie
$.cookie('the_cookie', 'the_value', { expires: 7 }); //设置带时间的cookie
$.cookie('the_cookie', '', { expires: -1 }); // 删除
$.cookie('the_cookie', null); // 删除 cookie
$.cookie('the_cookie', 'the_value', {expires: 7, path: '/', domain: 'jQuery.com', secure: true});//新建一个cookie 包括有效期 路径 域名等

这个插件默认的过期是按天数计算的,我们可以修改下,按毫秒计算,修改原始代码:

if (typeof options.expires === 'number') {
var days = options.expires, t = options.expires = new Date();
t.setDate(t.getDate() + days);
}

为:

if (typeof options.expires === 'number') {
var seconds = options.expires, t = options.expires = new Date();
t.setTime(t.getTime() + seconds);
}

下面举个简单的例子:我们需要对某个页面进行阅读统计,但是呢,在一段时间里(比如5分钟),同一个人无论刷新了这个页面多少次都好,都只能算一次。这个时候可以借助cookie来实现:

<script language="JavaScript" src="http://www.nowamagic.net/zt/Access_count/js/jQuery-1.4.2.min.js"></script>
<script type="text/JavaScript" src="http://www.nowamagic.net/zt/Access_count/js/jQuery.cookie.js"></script>
<script language="JavaScript" src="http://www.nowamagic.net/zt/Access_count/js/jQuery.jsonp-2.1.4.min.js"></script>
<script type="text/JavaScript">
	// 页面类型,标识一组页面
	var pageType = 20110420;
	// 页面id,标识唯一一个页面
	var url = window.location.href;
	var url_arr = url.split(".");
	var id = url_arr[url_arr.length - 2];
	//var id = 2;
	//var cookie = $.cookie('the_cookie'+id, true, { expires: 5/24/60/60 });
		
	$(document).ready(function(){
		init_count(pageType, id);
	})
		
	// 初始化数据,同一个cookie一分钟的访问量都算一次
	function init_count(pageType, id){
		if($.cookie('the_cookie'+id)){
			//alert("cookie已存在");
			getViewData(pageType, id);
		}
		else
		{
			// 1分钟过期
			var cookie = $.cookie('the_cookie'+id, 'Gonn', { expires: 1000 * 60 * 5 });
			//$.cookie('the_cookie'+id, 'Gonn');
			//var cookie = $.cookie('the_cookie'+id);
			//alert(cookie);
			insert_page(pageType, id);
			
		}
	}
	
	// 不插入与更新时统计访问量
	function getViewData(pageType, id){
    	$.ajax({  
        	type: "get",		//使用get方法访问后台  
        	dataType: "jsonp",	//返回json格式的数据  
			jsonp:"callback",
        	url: "http://xxxx/xxx.php",	//要访问的统计地址  
			data:{"opp":"view", "pageType":pageType, "id":id},
			async: false,
        	success: function(data){  
        		//alert(data.total);
				$('#pc_1').html(data.total);
				$('#pcm_1').html(data.record);
        	}  
    	})  
	}
	
	// 插入或者更新页面统计
	function insert_page(pageType, id){
		var j = null;
    	$.ajax({  
        	type: "get",		//使用get方法访问后台  
        	dataType: "jsonp",	//返回json格式的数据  
			jsonp:"callback",
        	url: "http://www.nowamagic.net/zt/Access_count/manage.php",	//要访问的后台地址  
			data:{"opp":"insert", "pageType":pageType, "id":id},
			async: false,
        	success: function(data){  
        		//alert(msg.current);
				//alert(msg.record);
				j = data; 
				//alert("111");
				//alert(j.total);
				$('#pc_1').html(data.total);
				$('#pcm_1').html(data.record);
        	}  
    	})  
	}

</script>

以上内容整理自:http://www.nowamagic.net/jQuery/jQuery_JqueryCookie.php 再次感谢原作者的耐心编写~

Related Posts: SeaJS-cmd模块化后的jQuery.cookie模块使用简述 :