基于jQuery+Cookie實現(xiàn)的防止刷新的在線考試倒計時
更新時間:2015年06月19日 09:54:15 投稿:hebedich
這篇文章主要介紹了基于jQuery+Cookie實現(xiàn)的防止刷新的在線考試倒計時的方法和示例,有需要的小伙伴可以參考下
基于jQuery+Cookie實現(xiàn)的防止刷新的在線考試倒計時
$(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毫秒執(zhí)行一次 setTimeout(function() { settime(remainTime); }, 1000); }; //時添加cookie function addCookie(name, value, expiresHours) { var cookieString = name + "=" + escape(value); //escape() 函數(shù)可對字符串進行編碼,這樣就可以在所有的計算機上讀取該字符串。 //判斷是否設置過期時間,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; }; }; }
以上所述就是本文的全部內容了,希望大家能夠喜歡。
您可能感興趣的文章:
相關文章
JQuery Ajax 異步操作之動態(tài)添加節(jié)點功能
異步操作動態(tài)添加節(jié)點,導致在代碼中給添加的節(jié)點全局綁定事件或者獲取元素無效,問題出在哪里呢?下文給大家介紹下,感興趣的朋友參考下吧2017-05-05