您的位置:首页 > Web前端 > JavaScript

JS开发通过设置cookie实现第一次进入首页展示弹窗广告,再次进入隐藏广告

2016-01-04 17:36 701 查看
<div class="dn car-activity-opcity"></div>
<div class="dn car-activity-module">
<a href="javascript:var bd_close;" class="close-activity" title="关闭" id="T-close-chezhujie" otitle="关闭-车主节首页弹窗" otype="button">关闭</a>
<a href="http://www.xxx.com/huiyuan/2016czj.shtml" class="car-activity-link-a" title="立即参与" id="T-lijicanyu" otitle="立即参与-车主节" otype="button" id="T-lijicanyu">立即参与</a>
<a href="http://www.xxx.com/cpchexian/campaign/zhitong/201601.shtml" class="car-activity-link-b" title="享车险福利" otitle="享车险福利-车主节" otype="button" target="_blank" id="T-xiangchexianfuli">享车险福利</a>
<a href="http://www.xxx.com/cpbaoxian/official/chezhujiehd/index.shtml" class="car-activity-link-c" title="享其他福利" otitle="享其他福利-车主节" otype="button" target="_blank" id="T-xiangqitafuli">享其他福利</a>
</div>

<script type="text/javascript">
$(".car-activity-module .close-activity").click(function(){
$(".car-activity-opcity").fadeOut();
$(".car-activity-module").fadeOut();
});

if(getCookieValue("carPopUp")!="ed"){
$(".car-activity-opcity").show();
$(".car-activity-module").show();
setCookie("carPopUp","ed",30,"/");
}
function setCookie(name,value,days,path){
var name = escape(name);
var value = escape(value);
var expires = new Date();
expires.setTime(expires.getTime() + days * 24*60*60*1000);
path = path =="" ? "":";path=" + path;
_expires = (typeof days) == "string" ? "": ";expires=" + expires.toUTCString();
// document.cookie = name + "=" + value + _expires + path;
document.cookie = name + "=" + value + path;
}
function getCookieValue(name){
var name = escape(name);
var allcookies = document.cookie;
name += "=";
var pos = allcookies.indexOf(name);
if(pos != -1){
var start = pos + name.length;
var end = allcookies.indexOf(";",start);
if(end == -1){
end = allcookies.length;
}
var value = allcookies.substring(start,end);
return unescape(value);
} else{
return "";
}
}
</script>

资料:

格式:cookieName=cookieValue;expires=expiresDate;path=URLpath;domain=siteDomain//cookie名称,失效日期,储存URL,储存域值;
Cookie(复数形态Cookies),中文名称为小型文本文件或小甜饼[1],指某些网站为了辨别用户身份而储存在用户本地终端(Client Side)上的数据(通常经过加密)

1 cookie会被附加在每个HTTP请求中,所以无形中增加了流量。
2 由于在HTTP请求中的cookie是明文传递的,所以安全性成问题。(除非用HTTPS)
3 Cookie的大小限制在4KB左右。对于复杂的存储需求来说是不够用的。
cookie最大长度4086

Cookie总是保存在客户端中,按在客户端中的存储位置,可分为内存Cookie和硬盘Cookie。
内存Cookie由浏览器维护,保存在内存中,浏览器关闭后就消失了,其存在时间是短暂的。硬盘Cookie保存在硬盘里,有一个过期时间,除非用户手工清理或到了过期时间,硬盘Cookie不会被删除,其存在时间是长期的。所以,按存在时间,可分为非持久Cookie和持久Cookie。

内存cookie,是指没有设在cookie的Expires的属性,此时cookie将停留在客户端的内存中,只有在该IE窗口中从“文件-新建- 窗口”打开的新的IE窗和由form的target属性为_blank产生的新的IE窗口才共享同一个cookie信息。IE,Chome的选项卡都共享同一个cookie信息。

硬盘cookie,是指在你设置了cookie的Expires属性,此时cookie将保存到你的硬盘上,Win7是在C:\Users\Administrator\AppData\Roaming\Microsoft\Windows\Cookies 下面(如果你是Administrator账号的话)。此时所有的窗口将共享同一个名字的cookie。

针对内存cookie,用fiddler可以看到cookie 没有 exprires这个属性,只要关掉ie再重新打开页面将会丢失(注:如果不关掉原来的ie窗口,新打开ie访问页面cookie还是会在)。

如果内存cookie没有指定域,那么可以在多个不同的站点间共享内存cookie
MVC测试代码 Controller 文件如下:
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: