首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

.net动态显示服务器上边的时间(只向服务器发送一次请求)

2013-09-25 
.net动态显示服务器上面的时间(只向服务器发送一次请求)在页面中,我们要动态的显示服务器上面的时间,我一

.net动态显示服务器上面的时间(只向服务器发送一次请求)

在页面中,我们要动态的显示服务器上面的时间,我一开始的思路就是:使用js的setInterval()方法,每隔1秒钟就发一次ajax请求向服务器获取一次时间,但是这样就会有一个问题,每隔一秒就向服务器发送了一次ajax请求,虽然耗时只有20ms左右,但是一直这样不断请求加重了服务器负担。于是我转变了思路:那就是我在页面第一次加载时向服务器发送一次ajax请求拿到当前服务器时间,然后每隔一秒就在此时间上加1秒,这里使用js的setInterval方法。事实证明,这样是可以实现的。

  var day, Hours, Minutes, Seconds;        //第一次加载时从服务器读取时间,然后在本地进行每秒+1秒的显示操作以减轻服务器压力        var changeShowTime = function (data) {            var s = data.split(':');            day = s[0]; Hours = s[1]; Minutes = s[2]; Seconds = s[3];            updateTime();            setInterval("updateTime()", 1000);        }        function updateTime() {            if (Seconds > 59) {                Minutes++; Seconds %= 60;            }            if (Minutes > 59) {                Hours++; Minutes %= 60;            }            if (Hours > 23) {                Hours %= 24;            }            var H = Hours;            if (H < 10) {                H = '0' + H;            }            var M = Minutes;            if (M < 10) {                M = '0' + M;            }            var S = Seconds;            if (S < 10) {                S = '0' + S;            }            $("#spnServerTime").html(day + " " + H + ':' + M + ':' + S);            Seconds++;        }        //js加载入口        $(function () {          $.post("Ajax/UpateTimeHandler.ashx", { "action": "UpdateTime" }, changeShowTime); //更新时间显示 
});          

一般处理程序如下:

public class UpateTimeHandler : IHttpHandler {        public void ProcessRequest (HttpContext context) {        context.Response.ContentType = "text/plain";        string action = context.Request["action"];           if (action == "UpdateTime")            {                string day = DateTime.Now.ToString("yyyy-MM-dd");                int hour = DateTime.Now.Hour;                int minute = DateTime.Now.Minute;                int second = DateTime.Now.Second;                string inputTime = day + ":" + hour + ":" + minute + ":" + second;                context.Response.Write(inputTime);            }    }     public bool IsReusable {        get {            return false;        }    }


 

热点排行