需求背景
用户满足相关条件后,需要弹出相关引导性的提示,并且每天只允许提示一次。
解决思路
1.设置具有生效时间的cookie,通过有无cookie来执行相应的操作。
代码实现
1 // 1.封装操作COOKIE的方法(也可以引入其他库); 2 3 // 1.1设置指定的cookie,并且指定失效时间; 4 function setCookie(name, value, time) { 5 var exdate = new Date(); 6 exdate.setHours(exdate.getHours() + time); //time 小时后过期 7 document.cookie = name + "=" + escape(value) + "; expires=" + exdate.toGMTString(); 8 } 9 10 // 1.2获取指定的cookie; 11 function getCookie(name) { 12 if (document.cookie.length > 0) { 13 u_start = document.cookie.indexOf(name + "="); 14 if (u_start != -1) { 15 u_start = u_start + name.length + 1; 16 u_end = document.cookie.indexOf(";", u_start); 17 if (u_end == -1) u_end = document.cookie.length; 18 return unescape(document.cookie.substring(u_start, u_end)); 19 } 20 }; 21 return ""; 22 }; 23 24 // 2.根据后端返回的数据处理相关业务 25 function initInfo(){ 26 27 // 2.1后端获取相关信息 28 // ..... 29 30 // 2.2满足条件,一天之内只提示一次 31 if(!getCookie("isFirst")){ 32 console.log("当前无COOKIE或COOKIE已失效"); 33 // 当天用户第一次进入,提示用户 34 // doSomething 35 36 // 设置COOKIE,有效时间为24小时 37 setCookie("isFirst","1",24); 38 }else{ 39 console.log("当前COOKIE为:"+getCookie("isFirst")); 40 // 当天用户非首次进入 41 } 42 }