0
我有一个对象,其中包含一些关于酒吧进度的数据,但它始终停留在99%,并且不会继续,我相信这是因为客户端时间与服务器时间不会像服务器时间一样足够准确。所以我不知道如何解决它。进度条同步javascript到服务器时间?
这2个定时器是在服务器端创建并发送给客户端的。
myOjb[i].end: 1374805587 //seconds since epoch for when 100% is made
myObj[i].strt: 1374805527 //seconds since epoch when it started
被计算百分比功能:
function clocker() {
var now = new Date().getTime()/1000;
for (var i in myObj) {
if (myObj[i].end > now) {
var remain = myObj[i].end - now;
var per = (now - myObj[i].strt)/(myObj[i].end - myBuildings[i].strt) * 100;
var per = fix_percentage(per); // stops > 100 and < 0 returns int if true
myObj[i].percentage = Math.ceil(per);
console.log(myObj[i].percentage); //reaches 99 max
if (myObj[i].percentage > 99) {
console.log('test'); //never occurs
return false;
}
break;
} else {
continue;
}
}
setTimeout(clocker, 1000);
}
function fix_percentage(per){
if(per>100)per=100;
if(per<0)per = 0;
return Math.round(per);
}
我怎么能同步两个在一起,这样的时机更准确?
当然,这整个答案是基于对fix_percentage行为的假设。 –
我已添加功能我的Q,所以你可以检查? – Sir
是的,错误是基于'if(myObj [i] .end>现在){'导致块/工作单元的**完成**(100%状态)大部分被跳过。 –