基于jQuery+Cookie實(shí)現(xiàn)的防止刷新的在線考試倒計(jì)時(shí)
更新時(shí)間:2015年06月19日 09:54:15 投稿:hebedich
這篇文章主要介紹了基于jQuery+Cookie實(shí)現(xiàn)的防止刷新的在線考試倒計(jì)時(shí)的方法和示例,有需要的小伙伴可以參考下
基于jQuery+Cookie實(shí)現(xiàn)的防止刷新的在線考試倒計(jì)時(shí)
$(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; } //開始倒計(jì)時(shí) function settime(remainTime) { var _time = getCookieValue("871d31bacfd4451484c5f70f8860c2a9"); var _countdown = parseInt(getCookieValue("${examinee.examineeId}")) / 1000; if (_countdown <= 0) { alert("考試時(shí)間到!"); 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毫秒執(zhí)行一次 setTimeout(function() { settime(remainTime); }, 1000); }; //時(shí)添加cookie function addCookie(name, value, expiresHours) { var cookieString = name + "=" + escape(value); //escape() 函數(shù)可對(duì)字符串進(jìn)行編碼,這樣就可以在所有的計(jì)算機(jī)上讀取該字符串。 //判斷是否設(shè)置過期時(shí)間,0代表關(guān)閉瀏覽器時(shí)失效 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; } //根據(jù)名字獲取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; }; }; }
以上所述就是本文的全部?jī)?nèi)容了,希望大家能夠喜歡。
相關(guān)文章
使用jQuery在對(duì)象中緩存選擇器的簡(jiǎn)單方法
這篇文章主要介紹了使用jQuery在對(duì)象中緩存選擇器的簡(jiǎn)單方法,jQuery是最知名的JavaScript庫(kù),需要的朋友可以參考下2015-06-06jQuery插件jsonview展示json數(shù)據(jù)
這篇文章主要為大家詳細(xì)介紹了jQuery插件jsonview展示json數(shù)據(jù)的方法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-05-05jQuery extend 的簡(jiǎn)單實(shí)例
這篇文章介紹了jQuery extend 的簡(jiǎn)單實(shí)例,有需要的朋友可以可以參考一下2013-09-09JQuery Ajax 異步操作之動(dòng)態(tài)添加節(jié)點(diǎn)功能
異步操作動(dòng)態(tài)添加節(jié)點(diǎn),導(dǎo)致在代碼中給添加的節(jié)點(diǎn)全局綁定事件或者獲取元素?zé)o效,問題出在哪里呢?下文給大家介紹下,感興趣的朋友參考下吧2017-05-05JQuery中dataGrid設(shè)置行的高度示例代碼
dataGrid 設(shè)置行的高度在jquery中如何做到,下面有個(gè)不錯(cuò)的教程,感興趣的朋友可以參考下2014-01-01