首页 > web前端 > js教程 > 正文

利用Cookie防止刷新的在线考试倒计时JS代码

大家讲道理
发布: 2016-11-10 14:32:52
原创
1515人浏览过

$(function() {
            var _minute = parseInt("${exampaper.paperTime }");
            var _expiresHours = _minute * 60 * 1000;
                
            if(!hasSetCookie()){
                addCookie("${examinee.examineeId}", _expiresHours, _expiresHours);
            } 
            settime($("#remainTime")); 
        });
        function hasSetCookie(){
            var strCookie = document.cookie;
            var arrCookie = strCookie.split("; ");
            for (var i = 0; i < arrCookie.length; i++) {
                var arr = arrCookie[i].split("=");
                if (arr[0] == "${examinee.examineeId}") {
                    return true;
                }
            };
            return false;
        }
        //开始倒计时
        function settime(remainTime) {
            var _time = getCookieValue("871d31bacfd4451484c5f70f8860c2a9");
            var _countdown = parseInt(getCookieValue("${examinee.examineeId}")) / 1000;
              
            if (_countdown <= 0) {
                alert("考试时间到!");
                endExam();
            } else {
                var _second = _countdown % 60;
                var _minute = parseInt(_countdown / 60) % 60;
                var _hour = parseInt(parseInt(_countdown / 60) / 60);
  
                if (_hour < 10)
                    _hour = "0" + _hour.toString();
                if (_second < 10)
                    _second = "0" + _second.toString();
                if (_minute < 10)
                    _minute = "0" + _minute.toString();
  
                remainTime.html(_hour + ":" + _minute + ":" + _second);
                _countdown--;
                editCookie("${examinee.examineeId}", _countdown * 1000, _countdown * 1000);
            }
            //每1000毫秒执行一次
            setTimeout(function() {
                settime(remainTime);
            }, 1000);
        };
  
        //时添加cookie
        function addCookie(name, value, expiresHours) {
            var cookieString = name + "=" + escape(value); //escape() 函数可对字符串进行编码,这样就可以在所有的计算机上读取该字符串。
            //判断是否设置过期时间,0代表关闭浏览器时失效
            if (expiresHours > 0) {
                var date = new Date();
                date.setTime(date.getTime() + expiresHours * 1000);
                cookieString = cookieString + ";expires=" + date.toUTCString();
            }
            document.cookie = cookieString;
        }
  
        //修改cookie的值
        function editCookie(name, value, expiresHours) {
            var cookieString = name + "=" + escape(value);
            if (expiresHours > 0) {
                var date = new Date();
                date.setTime(date.getTime() + expiresHours * 1000); //单位是毫秒
                cookieString = cookieString + ";expires=" + date.toGMTString();
            }
            document.cookie = cookieString;
        }
  
        //根据名字获取cookie的值
        function getCookieValue(name) {
            var strCookie = document.cookie;
            var arrCookie = strCookie.split("; ");
            for (var i = 0; i < arrCookie.length; i++) {
                var arr = arrCookie[i].split("=");
                if (arr[0] == name) {
                    return unescape(arr[1]);
                    break;
                } else {
                    continue;
                };
            };
        }
登录后复制

最佳 Windows 性能的顶级免费优化软件
最佳 Windows 性能的顶级免费优化软件

每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。

下载
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号