1

我在 .Net 环境中工作,在我的 aspx 页面上,我想添加一个正在运行的带秒数的数字时钟,但我需要它来使用服务器端时间。最好的方法是什么?

谢谢!

4

2 回答 2

5

花点时间看看这个 javascript 库。

您只需要为您的 javascript 代码提供服务器端时间,可能通过类似数据属性的方式

IE:

<html data-server-time="@Model.ServerTime">

然后你的 JS 应该只是(假设 jQuery 和时刻):

var date = $('html').data('server-time');
var start = new Date();

var updateTime = function (){
    setTimeout(function(){
        var now = moment(date).add(new Date() - start).format('YYYY/MM/DD HH:mm:ss')
        $('.target').text(now);
        updateTime();
    },1000);
}

$(function(){
    updateTime();
});

小提琴

这样,您将使用服务器时间,但您不需要在每次页面加载时多次请求它,从而避免不必要的 AJAX 调用。除非你的服务器有核级时钟或类似的东西。

于 2013-01-17T18:32:44.240 回答
1

你考虑过 AJAX 更新面板吗?

MSDN:教程:如何按时间间隔刷新 UpdatePanel 控件

每秒更新一次可能有点矫枉过正。也许实现它,以便它轮询服务器以检查服务器并且客户端时间仍然同步,如果没有,更新客户端页面?

于 2013-01-17T18:32:06.213 回答