问题:试题页面,通过获取提交任务客户端时间戳 - 试题显示任务时间戳 = 用户有效作业时间,对于用户修改本机时间。会导致无效作业时间
new Date().getTime()获取客户端时间,毫秒级。用户可以随意更改
方案1:通过jQuery获取服务端时间来计算差值
new Date($.ajax({type:'HEAD',async: false}).getResponseHeader("Date")).getTime(); 只能获取到秒
方案2:如果要求到毫秒 通过定时器中显示试题加到提交试题
export function SetworkTime() {if (parent.window.DoingTask.worktimeCountID != 0) { clearInterval(parent.window.DoingTask.worktimeCountID); parent.window.DoingTask.worktimeCountID = 0; parent.window.DoingTask.worktimeCount = 0; } // 有效作业时间 parent.window.DoingTask.worktimeCount += 5; parent.window.DoingTask.worktimeCountID = setInterval(function () { parent.window.DoingTask.worktimeCount += 5; },5); } }
之所以以5ms 为单位计算。因为了一毫秒 +1 ,十秒只能加到2400不准确。 如有更好的方法欢迎指教