1、使用workers
if (typeof (Worker) !== "undefined") {
var w = new Worker("workers.js");
if (typeof (w) !== "undefined") {
w.postMessage(now);
w.onmessage = function (event) {
$("#timer").html(event.data.Format('yyyy-MM-dd hh:mm:ss'));
};
}
}
workers.js文件
/*展示时钟(与服务器时间可能误差在2秒以内)*/
onmessage = function (event) {
var now = event.data;
var initTime = new Date();//系统时间
var lastTime;//上次执行操作系统时间
function timedCount() {
setInterval(function () {
/*获取客户端每次计时器刷新的真实时间差*/
initTime = new Date();
if (lastTime) {
now = new Date(now.getTime() + (initTime.getTime() - lastTime.getTime()));
} else {
now = new Date(now.getTime() + 2000);
}
lastTime = initTime;
postMessage(now);
}, 1000)
}
timedCount();
}