防止点击量页面刷新增加的简单处理方法

 防止点击量页面刷新增加的简单处理方法

 在写项目的过程中,博主遇到一个需要做文章点击浏览增加点击量的情况,这里简单描述一下,在做后台增加点击量时,刷新页面会导致你的请求重发,不停的增加点击量,这里给大家分享一个处理方法,用cookie来判断是否第一次进入此网页。

注意事项:

1.此方法并不严谨。因为此方法是设置保留cookie时间,判断cookie是否存在来做的,所以cookie一旦超过设定时间就会自行销毁,到时候用户再点又会增加点击量

2.此方法可以被浏览器清除cookie给弄的形同虚设

3.因为此方法是设置保留cookie时间,判断cookie是否存在来做的。所以如果时间不到此cookie就会一直缓存在用户终端的浏览器缓存里,希望不要设定的太久,这样会占用用户端资源

总结:此方法适合一些要求不是特别苛刻的项目,简单统计一下点击量的那种,追根到底这个方法还是弊病太多,比较大型严谨的项目建议看看网上别的方法,cookie好像也是有其他方法判断是否首次进入的

 上代码:

需要改的地方:

可以看到这里是先isNewVisitor方法获取cookie,首次进入时没有的,然后判断成功首次进入,塞入cookie值,第一个参数cookie名,第二个参数cookie值,第三个参数天数,下面有对应的方法,可以自己看一下就懂了

一.set方法键值队名要和get方法对应

二.如果这个网页是动态加载什么东西,例如文章内容是动态加载,需要动态给在set、get方法的键值队名,例如:文章类型代码+id拼接的字符串。这样才能动态拦截每个不同的文章点击量重复点击

$(document).ready(function() {
var newVisitor = isNewVisitor();
if(newVisitor === true) {
// 动画弹出消息框
// alert('您是新用户!');
// 标记:已经向该访客弹出过消息。30天之内不要再弹
setCookie("gznotes-visited", "true", 5);
} else {
console.log("您已不是新用户了")
}
});

function isNewVisitor() {
// 从cookie读取“已经向访客提示过消息”的标志位
var flg = getCookie("gznotes-visited");
if(flg === "") {
return true;
} else {
return false;
}
}

// 写字段到cookie
function setCookie(cname, cvalue, exdays) {
var d = new Date();
d.setTime(d.getTime() + (exdays * 24 * 60 * 60 * 1000));
var expires = "expires=" + d.toUTCString();
document.cookie = cname + "=" + cvalue + "; " + expires + ";path=/";
}

// 读cookie
function getCookie(cname) {
var name = cname + "=";
var ca = document.cookie.split(';');
for(var i = 0; i < ca.length; i++) {
var c = ca[i];
while(c.charAt(0) == ' ') c = c.substring(1);
if(c.indexOf(name) == 0) return c.substring(name.length, c.length);
}
return "";
}

 

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值