动态获取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);
};

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

时间: 2024-08-11 02:50:05

动态获取server时间的相关文章

Ubuntu利用TCP协议来获取server时间

Linux利用TCP协议来获取server时间 这里使用Unix网络编程里面的一个小程序,该client建立一个到server的TCP连接,然后读取由server以直观可读格式简单地送回的当前时间和日期. #include "unp.h" int main(int argc, char **argv) { int sockfd, n; char recvline[MAXLINE + 1]; struct sockaddr_in servaddr; if (argc != 2) err_

Titanium系列--利用js动态获取当前时间

动态获取时间: //显示时间 function getDateTime() { var now = new Date(); var year = now.getFullYear(); var month = now.getMonth()+1; var day = now.getDate(); //var hour = now.getHours(); //var minute = now.getMinutes(); //var second = now.getSeconds(); if(month

动态获取服务器时间

最近在做的这个项目要获取到后台的数据,然后使用html5绘制曲线,以前都是在自己电脑上使用没有发现有什么不正常的地方,昨天连接同事的服务器发现有段数据怎么都对不上了,开始我还以为程序有问题呢,找了半天结构发现是我的电脑时间和同事的电脑时间对不上导致的.既然发现了问题下面就是找出解决办法了. 实际上最好的解决办法是固定客户端的时间,不然修改,但你会发现这个不可能的.所以只有找其他方式的.再有就是获取服务器时间然后同步到客户端了.实际上这个游戏三种方式可行. 1.既然是动态获取就每秒获取一次,这样能

动态获取当前时间,查询数据。

1 HashMap<String,Object> paramMap =new HashMap<String,Object>(); 2 //获取当前时间 3 SimpleDateFormat timesystem = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); 4 Date date = new Date(); 5 6 String createDate = timesystem.format(date); 7 par

ZooKeeper动态增加Server(动态增加节点)的研究(待实践)

说明:是动态增加Server,不是动态增加连接到ZK Server的Client. 场景如下(转自外文): 1.在t=t_1->[peer-1(Leader),peer-2],peer-1是主节点,所有客户端连接到该节点. 2.在t=t_2->[peer-1(Leader),peer-2,peer-3],稍后的时候,同行3加入了该组.是否可以“动态地”将动态列表添加到zookeeper服务器列表(即,在对等体1上不重新启动ZooKeeper)? 3.在t=t_3->[peer-3(Lea

获取指定时间区间作业运行情况

背景:数据库服务器定期重启,想知道重启期间对作业的影响.通俗点就是服务器在重启这段时间,有哪些作业计划要运行,重启后是否要手动执行这些作业?第一次重启的时候,按照最笨的方式,把所有作业看一遍,然后人为判断有哪些作业将受到影响,再根据作业具体代码,确定是否需手动执行.后来老大说要弄个过程出来,通过传入起止时间参数,返回区间内的作业计划.PS:参考各类资料,修改过很多遍,最后成型在6月初,很多细节上的修改自己也记不清楚了,一直懒得整理.先放上代码,以及效果图. 1 /****************

Unity 获取服务器时间 HTTP请求方式

在写每日签到的时候,我居然使用的是本地时间...被项目经理笑哭了...., 如果你在写单机游戏,没有游戏服务器,但又不想使用本地时间,就可以采用下面方法. 方法总结: 1. 使用HTTP请求获取服务器时间,不能实时获取服务器时间这样高频率的 2. 使用socket可以实时获取服务器时间 3. 使用C#自带API获取sql server 标准北京时间(=.=还没有找到这个API) 第HTTP方式: 代码: using UnityEngine; using System.Collections; u

信息管理系统如何获取当前日期时间

在进行机房收费系统合作开发的过程中,负责编写U层的H提出了一个问题,我们在进行数据库记录插入的时候,那个日期和时间字段的值是从从客户端程序获取还是从DBMS的服务器上获取?说实话,在做牛腩新闻发布系统之前,我是没想过从数据库系统里获取当前时间的,这又让我增长了见识.后来在交流的过程中,有了解到还可以获取网络时间,那么今天就来先对这三种获取当前日期时间的方法进行一下总结. 首先是从客户端程序获取当前时间,这个不难,相信大家都做过这件事情,当然不同的编程语言之间或许会有差异,但总的来说都是一样的,通

SQL Server时间粒度系列----第4节季、年时间粒度详解

本文目录列表: 1.SQL Server季时间粒度2.SQL Server年时间粒度 3.总结语 4.参考清单列表 SQL Serve季时间粒度   季时间粒度也即是季度时间粒度.一年每3个月是一个季,一年共4季,1月到3月是第1季.4月到6月是第2个季.依次顺延.季也是日期时间范围的,我们也会引入季基准日期,也就是每个季度的第一天.以下提供季基准日期和整数相互转换的功能的实现,还有获取指定日期时间所在当前年内的季索引,从1开始计数,包括1.2.3.4. 提供季基准日期和整数相互转换的功能函数,