• 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         }
  • 相关阅读:
    centos 7下安装mysql 5.7.21
    以多主模式优雅进行MGR复制搭建
    JMeter测试工具
    keepalived故障切换邮件通知
    vim常用快捷键
    mysql高可用之MHA--邮件报警
    Shell脚本实现批量下载资源并保留原始路径
    面试常考题 max pool实现
    Cpp 书籍推荐
    面试常考题 浅谈 赛马问题
  • 原文地址:https://www.cnblogs.com/lemen/p/13153504.html
Copyright © 2020-2023  润新知