我在 .Net 环境中工作,在我的 aspx 页面上,我想添加一个正在运行的带秒数的数字时钟,但我需要它来使用服务器端时间。最好的方法是什么?
谢谢!
我在 .Net 环境中工作,在我的 aspx 页面上,我想添加一个正在运行的带秒数的数字时钟,但我需要它来使用服务器端时间。最好的方法是什么?
谢谢!
花点时间看看这个 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 调用。除非你的服务器有核级时钟或类似的东西。
你考虑过 AJAX 更新面板吗?
MSDN:教程:如何按时间间隔刷新 UpdatePanel 控件
每秒更新一次可能有点矫枉过正。也许实现它,以便它轮询服务器以检查服务器并且客户端时间仍然同步,如果没有,更新客户端页面?