基于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ù)可對字符串進行編碼,這樣就可以在所有的計算機上讀取該字符串。
//判斷是否設(shè)置過期時間,0代表關(guān)閉瀏覽器時失效
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;
};
};
}
以上所述就是本文的全部內(nèi)容了,希望大家能夠喜歡。
您可能感興趣的文章:
相關(guān)文章
JQuery實現(xiàn)簡單的服務(wù)器輪詢效果實例
這篇文章主要介紹了JQuery實現(xiàn)簡單的服務(wù)器輪詢效果,結(jié)合實例形式分析了jQuery的ajax交互結(jié)合.net處理實現(xiàn)輪詢效果的相關(guān)技巧,需要的朋友可以參考下2016-03-03
Jquery綁定事件(bind和live的區(qū)別介紹)
Jquery中綁定事件有三種方法click、bind、live第一種方法很好理解,其實就和普通JS的用法差不多,只是少了一個on而已第二、三種方法都是綁定事件2013-08-08
JQuery中html()方法使用不當(dāng)帶來的陷阱
html方法當(dāng)不傳參數(shù)時用來獲取元素的html內(nèi)容2011-04-04

