动态获取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);
};
这样就能实现时间的动态刷新,但又不至于频繁的到后台请求数据了。
动态获取server时间的更多相关文章
- Ubuntu利用TCP协议来获取server时间
Linux利用TCP协议来获取server时间 这里使用Unix网络编程里面的一个小程序,该client建立一个到server的TCP连接,然后读取由server以直观可读格式简单地送回的当前时间和日 ...
- jsp页面动态获取系统时间
最近在做练习时碰到了这样一个问题:"读者选择查询图书相应信息,跳转到书目的详细信息界面,当可借阅数量大于零,点击借阅按钮,提示用户借阅成功,并显示归还日期(三个月),否则提示用户该书可借阅数 ...
- Titanium系列--利用js动态获取当前时间
动态获取时间: //显示时间 function getDateTime() { var now = new Date(); var year = now.getFullYear(); var mont ...
- js动态获取当前时间(年、月、日、上午/下午、时、分、秒)
//获取动态时间function mytime() { var mydate = new Date(); var year = mydate.getFullYear(); var month = my ...
- JS动态获取当前时间
HTML部分: <div class="div"> <div id="div"> </div> </div> C ...
- Date动态获取时间
·getDate | 根据本地时间获取当前日期(本月的几号) ·getDay | 根据本地时间获取今天是星期几(0-Sunday,1-Monday.. ...
- 动态 Web Server 技术发展历程
动态 Web Server 技术发展历程 开始接触 Java Web 方面的技术,此篇文章是以介绍 Web server 相关技术的演变为主来作为了解 Java servlet 的技术背景,目的是更好 ...
- ZooKeeper动态增加Server(动态增加节点)的研究(待实践)
说明:是动态增加Server,不是动态增加连接到ZK Server的Client. 场景如下(转自外文): 1.在t=t_1->[peer-1(Leader),peer-2],peer-1是主节 ...
- SQL Server时间粒度系列----第2节日期、周时间粒度详解
本文目录列表: 1.从MySQL提供的TO_DAYS和FROM_DAYS这对函数说起2.SQL Server日期时间粒度3.SQL Server周有关时间粒度 4.总结语 5.参考清单列表 从My ...
随机推荐
- Java经典23种设计模式之行为型模式(二)
本文接着介绍行为型模式里的解释器模式.迭代器模式.中介者模式. 一.解释器模式Interpret 给定一个语言,定义它的文法的一种表示,并定义一个解释器,这个解释器使用该表示来解释语言的中的句子. 1 ...
- android对话框(Dialog)的使用方法
Activities提供了一种方便管理的创建.保存.回复的对话框机制.比如 onCreateDialog(int), onPrepareDialog(int, Dialog), showDialog( ...
- Spark应用程序部署工具Spark Submit
不多说,直接上干货! spark-submit在哪个位置 [spark@master ~]$ cd $SPARK_HOME/bin [spark@master bin]$ pwd /usr/loca ...
- JQuery 当点击input后,单选多选的选中状态
1.当点击input元素,此元素的选中checked的值 = 此元素此时表现的选中与否的状态. eg:input元素开始是未选中,点击后表现的是选中状态,此元素的checked为true(和此元素开始 ...
- 洛谷 P1097 统计数字
P1097 统计数字 题目描述 某次科研调查时得到了n个自然数,每个数均不超过1500000000(1.5*10^9).已知不相同的数不超过10000个,现在需要统计这些自然数各自出现的次数,并按照自 ...
- 机器学习算法中怎样选取超參数:学习速率、正则项系数、minibatch size
本文是<Neural networks and deep learning>概览 中第三章的一部分,讲机器学习算法中,怎样选取初始的超參数的值.(本文会不断补充) 学习速率(learnin ...
- Mrakdonw学习
转载请注明出处:http://blog.csdn.net/cym492224103 什么是Mrakdown 为什么使用Mrakdown 怎样Mrakdown 字体 删除线 字体大小 引用 代码行代码块 ...
- 3.Docker安装【Docker每天5分钟】
原文:3.Docker安装[Docker每天5分钟] Docker给PaaS世界带来的“降维打击”,其实是提供了一种非常便利的打包机制.该机制打包了应用运行所需要的整个操作系统,从而保证了本地环境和云 ...
- 【剑指offer】对面和相等的正方体
转载请注明出处:http://blog.csdn.net/ns_code/article/details/26509459 剑指offer上的全排列相关题目. 输入一个含有8个数字的数组.推断有么有可 ...
- Kinect开发笔记之三Kinect开发环境配置具体解释
0.前言: 首先说一下我的开发环境,Visual Studio是2013的,系统是win8的64位版本号,SDK是Kinect for windows SDK 1.8版本 ...