24小时内“只执行一次的”实现思路与代码

需求背景

用户满足相关条件后,需要弹出相关引导性的提示,并且每天只允许提示一次。

解决思路

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         }
原文地址:https://www.cnblogs.com/lemen/p/13153504.html