一个电子表的例子

来源:互联网 发布:天猫双十一实时数据 编辑:程序博客网 时间:2024/04/27 11:15

        记得在学习.NET AJAX控件的时候,说过一个timer控件。在讲timer的时候,他用了一个电子表的例子,但是又严格说明,如果只是为了一个电子表,完全没有必要一秒一刷。而是在页面加载的时候读取一下服务器的时间,然后在本地进行时间的增加。

        前几天在找资料的时候碰到了这样的一个代码,进行一下收藏。

        服务端代码

        

protected void Page_Load(object sender, EventArgs e)        {            lblTime.Text = DateTime.Now.ToString("hh:mm:ss");        }

        客户端代码

         需要注意的是,下面代码忽略了网络传输消耗的时间,而且script代码必须在控件的声明下面,否则会出问题,问题具体是什么自己试一下就知道了,出现这个问题的原因,我个人感觉是因为页面加载的机制造成的,所以在引入js文件的时候也需要注意顺序。例如你一个js文件用到了jquery,那么jquery就必须在那个js之前引用。

<form id="form1" runat="server">        <div>            <asp:Label ID="lblTime" runat="server" Text="Label"></asp:Label>            <script type="text/javascript">                //从页面上获取显示时间的Label                var server = document.getElementById("lblTime").innerHTML;                //获取时间的时、分、秒                var hours = server.substring(0, 2);                var minutes = server.substring(3, 5);                var seconds = server.substring(6, 8);                //设置定时器,每个1秒,执行一此update函数                setInterval(update, 1000);                //每过1秒,对服务器获取到的时间进行改变,并且对lblTime进行赋值                function update() {                    //增加1秒                    seconds++;                    //当为60秒时,把秒设为0,并且分钟加1                    if (seconds == 60) {                        seconds = 0;                        minutes++;                    }                    //当为60分时,把分设为0,并且小时加1                    if (minutes == 60) {                        minutes = 0;                        hours++;                    }                    //当为24时,把小时还原为0                    if (hours == 24) {                        hours = 0;                    }                    //将新时间给lblTime                    document.getElementById("lblTime").innerHTML = hours + ":" + minutes + ":" + seconds;                }            </script>        </div>    </form>
	
				
		
原创粉丝点击