我使用time()函数创建了一个php多人游戏文字游戏来同步它。
除了有时候时间值功能在同一时刻产生不同的结果时,效果很好!! 为了解释这一点,我用这段代码制作了一个php文件:
<html>
<head>
<script type="text/JavaScript">
function timedRefresh(timeoutPeriod) {
setTimeout("location.reload(true);",timeoutPeriod);
}
</script>
</head>
<body onload="JavaScript:timedRefresh(1000);">
<?php
echo time();
?>
</body>
</html>
我用两个不同的chrome用户打开它,我得到的偏差约为20s! 我减少了一个chrome用户的历史,并解决了这个问题!
请解释&amp;溶液
答案 0 :(得分:0)
因为OP要求另一个解决方案:“我使用setinterval函数从服务器获取常规数据!还有其他解决方案吗?”
是的,例如,你可以通过以下方式每10秒刷新一次:
<?php $refresh_time = 10; ?>
<head>
<meta http-equiv="refresh" content="<?php echo $refresh_time; ?>" />
</head>
请注意:每1秒刷一遍整页以从服务器获取数据是一个坏主意。
建议:为什么不尝试ajax调用来获取数据?
不使用缓存(如果是这样的话):
如果谷歌浏览器缓存很麻烦,请尝试这样做:不是重新加载相同的网址,而是每次都添加一个新的网址参数,这样浏览器就不会尝试使用任何缓存。像这样:
<script type="text/JavaScript">
function timedRefresh(timeoutPeriod) {
setTimeout("window.location.href = location.protocol + '//' + location.host + location.pathname+'&t=<?php echo time();?>'",timeoutPeriod);
}
</script>