我在.Net环境中工作,在我的aspx页面上,我想添加一个正在运行的数字时钟w //秒,但我需要它来使用服务器端时间。对此最好的方法是什么?
谢谢!
答案 0 :(得分:5)
请moment查看此javascript库。
您只需要在javascript代码中提供服务器端时间,可能需要通过类似数据属性的方式
即:
<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调用。除非你的服务器有核级时钟或类似的东西。
答案 1 :(得分:1)
您是否考虑过AJAX UpdatePanel?
MSDN:Tutorial: How to refresh an UpdatePanel control at a timed interval
每秒更新可能有点过分。也许实现它以便它轮询服务器以检查服务器并且客户端时间仍然是同步的,如果没有,更新客户端页面?