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 属性来启用或禁用 Timer 。 Interval 属性以毫秒为单位定义,其默认值为 60,000 毫秒,即 60 秒。
注意: |
---|
将 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 控件概述 。
有关 Timer 控件的所有属性的说明,请参阅 MSDN Library 中的 Timer 属性 。
另请参阅
任务
教程:如何按规定的时间间隔刷新 UpdatePanel 控件