.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;
        }
    }


 

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

邹琼俊

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值