Timer 控件

ASP.NET AJAX Timer 控件可按照定义的间隔执行回发。如果将 Timer 控件和 UpdatePanel 控件结合在一起使用,可以按照定义的间隔启用局部页面更新。您还可以使用 Timer 控件来发布整个网页。

Timer 控件需要 web.config 文件中的特定设置才能正常工作。如果您试图使用此控件,但您的网站不包含所需的 web.config 文件,则在网页的“设计”视图中本应显示该控件之处会出现错误。在“设计”视图中,如果您单击处于该状态的控件,则 Microsoft Expression Web 会让您选择要新建一个 web.config 文件还是更新现有的 web.config 文件。

方案

当您要执行以下操作时,可使用 Timer 控件:

  • 定期更新一个或多个 UpdatePanel 控件的内容而不刷新整个网页。

  • 每次 Timer 控件导致回发时在服务器上运行代码。

  • 按照定义的间隔将整个网页同步发布到 Web 服务器。

背景

Timer 控件是一个服务器控件,用于将 JavaScript 组件嵌入到网页中。当 Interval 属性中定义的间隔已过时,JavaScript 组件会从浏览器启动回发。您在服务器上运行的代码中为 Timer 控件设置属性,这些属性会传递给该 JavaScript 组件。

使用 Timer 控件时,网页中必须包括 ScriptManager 类的实例。

Timer 控件启动回发时, Timer 控件会在服务器上引发 Tick 事件。您可以为 Tick 事件创建一个事件处理程序,以便将网页发布到服务器时执行操作。

设置 Interval 属性来指定发生回发的频率,并设置 Enabled 属性来启用或禁用 TimerInterval 属性以毫秒为单位定义,其默认值为 60,000 毫秒,即 60 秒。

Note注意:

Timer 控件的 Interval 属性设置为一个较小值会大量增加 Web 服务器的流量。使用 Timer 控件可专门根据需要的频率来刷新内容。

如果不同的 UpdatePanel 控件必须在不同的间隔更新,则可以在网页上包括多个 Timer 控件。此外, Timer 控件的单个实例可以是某网页中多个 UpdatePanel 控件的触发器。

在 UpdatePanel 控件内部使用 Timer 控件

Timer 控件包含在 UpdatePanel 控件内时, Timer 控件会自动充当该 UpdatePanel 控件的触发器。通过将 UpdatePanel 控件的 ChildrenAsTriggers 属性设置为 false,可阻止此行为。

如果 Timer 控件在 UpdatePanel 控件内,则仅当每个回发操作完成时才会重新创建 JavaScript 计时组件。因此,在完成回发重新显示网页之前,不会算做计时间隔。例如,如果 Interval 属性设置为 60,000 毫秒(60 秒),但回发需要 3 秒钟才能完成,则下次回发将在上次回发出现 63 秒后才会开始。

在 UpdatePanel 控件外部使用 Timer 控件

当“Timer”控件在 UpdatePanel 控件之外时,必须将“Timer”控件显式定义为要更新的 UpdatePanel 控件的触发器。

如果 Timer 控件在 UpdatePanel 控件之外,则在处理回发的同时 JavaScript 计时组件会继续运行。例如,如果 Interval 属性设置为 60,000 毫秒(60 秒),而回发需要 3 秒钟才能完成,则下次回发会在上次回发启动 60 秒后发生。用户仅能看到 UpdatePanel 控件中 57 秒内刷新的内容。

所设置的 Interval 属性的值必须允许一个异步回发能在下次回发启动前完成。如果上一个回发还在处理当中就启动了新的回发,则第一个回发会被取消。

有关 Timer 控件的详细信息,请参阅 MSDN Library 中的 Timer 控件概述 Cc295201.xtlink_newWindow(zh-cn,Expression.40).png

有关 Timer 控件的所有属性的说明,请参阅 MSDN Library 中的 Timer 属性 Cc295201.xtlink_newWindow(zh-cn,Expression.40).png

另请参阅

任务

教程:如何按规定的时间间隔刷新 UpdatePanel 控件

概念

ASP.NET AJAX 控件
部分页呈现概述
ScriptManager 控件