动态获取server时间

近期在做的这个项目要获取到后台的数据。然后使用html5绘制曲线。曾经都是在自己电脑上使用没有发现有什么不正常的地方,昨天连接同事的server发现有段数据怎么都对不上了,開始我还以为程序有问题呢,找了半天结构发现是我的电脑时间和同事的电脑时间对不上导致的。既然发现了问题以下就是找出解决的方法了。

实际上最好的解决的方法是固定client的时间,不然改动,但你会发现这个不可能的。所以仅仅有找其它方式的。

再有就是获取server时间然后同步到client了。实际上这个游戏三种方式可行。

1、既然是动态获取就每秒获取一次。这样能完毕需求可是会非常大的添加server的压力。

2、获取玩一次后,然后在client进行更新。这个能保证在開始的时候获取到的数据时正确的。可是后期不能保证数据的正确性。

3、在開始的时候获取一次,以后每过分钟再获取一次,这样能非常大程度上降低server的压力,也能非常大程度上保证数据的正确性。


获取server时间:

/**
 * 获取server时间
 */
function getServerTime()
{
<span style="white-space:pre">	</span>nowTime = new Date().getTime();
<span style="white-space:pre">	</span>$.ajax(
<span style="white-space:pre">	</span>{
<span style="white-space:pre">		</span>url : 'serverTime_getServerTime', type : 'GET', datatype : 'json',
<span style="white-space:pre">		</span>success : function(data)
<span style="white-space:pre">		</span>{
<span style="white-space:pre">			</span>/**
<span style="white-space:pre">			</span> * 推断相应的键值是否有相应的数据
<span style="white-space:pre">			</span> */
<span style="white-space:pre">			</span>if (data)
<span style="white-space:pre">			</span>{
<span style="white-space:pre">				</span>nowTime = data;
<span style="white-space:pre">			</span>}
<span style="white-space:pre">		</span>}
<span style="white-space:pre">	</span>});
<span style="white-space:pre">	</span>return nowTime;
}


设置动态更新:

function setTime()
{
	if (timeInterval != 60000)
	{
		timeInterval += 1000;
		nowTime += 1000;
	} else
	{
		nowTime = getServerTime();
		timeInterval = 0;
	}
	$("#server_time").html(
			"服务器时间:" + new Date(nowTime).toString().substring(15, 24));
}

在页面载入的时候调用:

<span style="font-family: Arial, Helvetica, sans-serif;">window.onload = function()</span>
{
	nowTime = getServerTime();
	setInterval(setTime, 1000);
};

这样就能实现时间的动态刷新,但又不至于频繁的到后台请求数据了。







  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值