初学 ASP.NET AJAX (四):Timer 和 UpdateProgress

ASP.NET - Timer 控件概述       ASP.NET AJAX Timer 控件按定义的时间间隔执行回发。如果将 Timer 控件用于 UpdatePanel 控件,则可以按定义的时间间隔启用部分页更新。也可以使用 Timer 控件来发送整个页面。当您要执行以下操作时,请使用 Timer 控件:·定期更新一个或多个 UpdatePanel 控件的内容,而无需刷新整个网页。·每当 Timer 控件导致回发时运 阅读详情
1 概述
Timer 和 UpdateProgress 是 ASP.NET AJAX Extensions 1.0 中所包含的其他二个简单的服务器控件。Timer 控件用于定时触发事件,而 UpdateProgress 控件用于在局部更新时为用户显示进度条。

2 Timer 控件
Timer 控件在预定的时间间隔中执行回发。如果将 Timer 控件和 UpdatePanel 控件一起使用,就可以定时的进行局部页面的刷新。也可以使用 Timer 控件来发送整个页面。

2.1 Timer 控件的使用场景
可以在以下情况下使用 Timer 控件:
  • 周期性的更新一个或多个 UpdatePanel 控件,而无须刷新整个页面。
  • 每次 Timer 控件回发时都在服务器端运行代码。
  • 定时的同步发送整个页面到服务器。

2.2 背景
Timer 控件是一个将 Javascript 组件嵌入到 Web 页面中的服务器控件。Javascript 组件在经过定义在 Interval 属性中定义的间隔时启动来自浏览器的回发。可以在运行在服务器上的代码中设置 Timer 控件的属性,这些属性都会被传送到 Javascript 组件。
在使用 Timer 控件时,页面中必须包含一个 ScriptManager 控件。
当 Timer 控件启动一个回发时,Timer 控件在服务器端触发 Tick 事件,可以为 Tick 事件创建一个处理程序来执行页面发送回服务器的动作。
设置 Interval 属性以指定回送发生的频率,设置 Enabled 属性以开启或关闭 Timer,Interval 属性以毫秒为单位,默认为 60000 毫秒,也即 60 秒。
注意:将 Interval 属性设置为很小的值将会导致频率的回发,从而引发性能问题,所以,要以必要的频率使用 Timer 控件来刷新内容。
如果不同的 UpdatePanel 必须以不同的间隔更新,那么就可以在同一页面中包含多个 Timer 控件。另一种选择是,单个 Timer 控件实例可以是同一页面中多个UpdatePanel 控件的触发器。

2.3 在 UpdatePanel 控件内部使用 Timer 控件
当 Timer 控件被包含在 UpdatePanel 控件的内部时,Timer 控件自动成为 UpdatePanel 控件的触发器。可以将 UpdatePanel 控件的 ChildrenAsTriggers 属性设置为 false 来覆盖这种行为。
对于在 UpdatePanel 控件内部的 Timer 控件,Javascript 时间组件仅在每次回发结束时重新创建,因此,时间间隔在页面从回发返回前不会开始。例如,如果 Interval 属性被设置为 60000 毫秒,而回送花费了3秒来完成,即下次回送在前一次回送发生后63秒之后才发生。
下列示例展示了如何在 UpdatePanel 控件内部包含一个 Timer 控件,其中指定的 Timer1_Tick 即为回发时的事件处理程序:

<asp:ScriptManager runat="server" id="ScriptManager1" />
<asp:UpdatePanel runat="server" id="UpdatePanel1"
    UpdateMode="Conditional">
  <contenttemplate>
    <asp:Timer id="Timer1" runat="server"
      Interval="120000"
      OnTick="Timer1_Tick">
    </asp:Timer>
  </contenttemplate>
</asp:UpdatePanel>

2.4 在 UpdatePanel 控件外部使用 Timer 控件
当 Timer 控件在 UpdatePanel 控件的外部时,必须显式的定义 Timer 控件为要更新的 UpdatePanel 控件的触发器。
如果 Timer 控件在 UpdatePanel 控件的外部,Javascript 时间组件会像回发已被处理一样继续运行。例如,如果 Interval 属性被设置为 60000 毫秒(60秒),回发需要3秒来完成,则下次回发将在上次回发的后60秒后回发,而用户看到的在 UpdatePanel 控件中的更新内容只有57秒。
必须设置 Interval 属性为使一个异步回发在下次回发启动前可以完成的值,如果新的回发在更早的回发处理期间启动的话,早期的回发将被取消。
下列示例展示了如何在 UpdatePanel 控件外部使用 Timer 控件。

<asp:ScriptManager runat="server" id="ScriptManager1" />
<asp:Timer ID="Timer1" runat="server" Interval="120000"
  OnTick="Timer1_Tick">
</asp:Timer>
<asp:UpdatePanel ID="UpdatePanel1" runat="server">
  <Triggers>
    <asp:AsyncPostBackTrigger ControlID="Timer1"
        EventName="Tick" />
    </Triggers>
    <ContentTemplate>
      <asp:Label ID="Label1" runat="server" ></asp:Label>
  </ContentTemplate>
</asp:UpdatePanel>

3 UpdateProgress 控件
UpdateProgress 控件提供 UpdatePanel 控件中局部页面更新时的状态信息。可以定制 UpdateProgress 控件的默认内容和布局。要防止在局部页面更新时发生闪屏,可以设置 UpdateProgress 控件在显示前的延迟。

3.1 场景
当一个页面中包含一个或多个 UpdatePanel 控件用于局部页面输出时,使用 UpdateProgress 控件可以设计一个更为直观的界面。如果局部页面更新很慢,就可以用 UpdateProgress 控件来提供一个更新状态的可视化反馈。可以在一个页面上放置多个 UpdateProgress 控件,每个关联不同的 UpdatePanel 控件。另一种选择是,只使用一个 UpdateProgress 控件,而让它与页面中的所有 UpdatePanel 控件相关联。

3.2 背景
UpdateProgress 控件输出为一个 <div> 元素,它的显示或隐藏依赖于关联的 UpdatePanel 控件是否导致异步回发。对于原始页面和同步回发,UpdateProgress 控件不会显示。

3.3 将一个 UpdateProgress 控件与一个 UpdatePanel 控件相关联
可以设置 UpdateProgress 控件的 AssociatedUpdatePanelID 属性来将它与 UpdatePanel 控件相关联。当一个回发源自 UpdatePanel 控件时,所有关联的 UpdateProgress 控件都会显示。如果不将 UpdateProgress 控件与特定的 UpdatePanel 控件关联,则 UpdateProgress 控件将为所有回发显示进度。
如果 UpdatePanel 控件的 ChildrenAsTriggers 属性设置为 false ,并且异步回发源自 UpdatePanel 控件的内部时,所有关联的 UpdateProgress 控件都将显示。

3.4 创建 UpdateProgress 的内容
用 ProgressTemplate 属性来以声明的方式指定由 UpdateProgress 控件显示的消息。<ProgressTemplate> 元素可以包含 HTML 和标记。下列示例演示了如何为 UpdateProgress 控件指定一条消息:

<asp:UpdateProgress ID="UpdateProgress1" runat="server">
<ProgressTemplate>
  An update is in progress...
</ProgressTemplate>
</asp:UpdateProgress>

3.5 指定内容布局
当 DynamicLayout 属性设置为 true 时,UpdateProgress 控件初始时不占用页面的空间,页面在需要时动态的显示 UpdateProgress 控件。为支持动态显示,控件输出的 <div> 元素的 display 样式属性初始被设置为 none。
当 DynamicLayout 属性设置为 false 时,UpdateProgress 控件将在页面显示时占用空间,即使控件不显示。在这种情况下,控件的 <div> 元素的 displey 样式属性被设置为 block ,而 visibility 初始设置为 hidden 。

3.6 在页面中放置 UpdateProgress 控件
可以将 UpdateProgress 控件放在 UpdatePanel 控件的外部或内部。UpdateProgress 控件随着它关联的 UpdatePanel 控件更新为一个异步回发的返回而显示,即使 UpdateProgress 控件被包含在另一个 UpdatePanel 控件中也一样。
如果 UpdatePanel 控件在另一个更新面板内部,源自子面板内部的回发将导致关联子面板的 UpdateProgress 控件的显示。同时,关联父面板的所有 UpdateProgress 控件也将显示。如果回发源自父面板的直接子控件,则仅有与父面板相关联的 UpdateProgress 控件显示。这与回发如何被触发时一样的逻辑。

3.7 指定 UpdateProgress 控件显示的时机
可以使用 Javascript 的 PageRequestManager 类的 beginRequest 和 endRequesst 事件来编程控制 UpdateProgress 控件显示的时机。在beginRequest 事件处理程序中,显示表示 UpdateProgress 控件的 DOM 元素,在 endRequest 的事件处理程序中隐藏元素。
在下列情形下必须提供客户端脚本来显示或隐藏 UpdateProgress 控件:
  • 在源自一个注册为更新面板的异步回发触发器的回发期间,而它并没有与 UpdateProgress 控件关联。
  • 在源自以编程的方式使用 ScriptManager 控件的 RegisterAsyncPostBackControl(Control) 方法注册为异步回发控件的控件回发期间,在这种情况下,UpdateProgress 控件无法自动确定异步回发已被触发。

3.8 其他属性
DisplayAfter :
以毫秒为单位指定 UpdateProress 控件显示的延迟时间。

4 总结
至此,ASP.NET AJAX Extensions 1.0 中所包含的几个服务器控件已都学习完毕,使用这些服务器控件,我们就可以开发出具有基本的 AJAX 特性的 Web 应用程序,以为用户提供更好的客户端体验。
 
遥感大模型之Prithvi的关键技术解读 Prithvi系列模型开创了遥感领域基础模型新范式,通过海量多源时空数据(HLSSAR)与Vision Transformer架构的深度融合,采用掩码自编码器进行自监督预训练,实现了强大的地球观测表征能力。该技术体系突破传统方法在全局建模、多模态融合时空分析上的局限,仅需少量标注数据即可在土地分类、灾害监测等任务上取得优异表现。从初代3亿参数到Prithvi-EO-2.0的10亿参数升级,展现了模型可扩展性,为构建地球数字孪生智能基座奠定基础。 阅读详情

相关推荐

Windows下Ajax相关控件

Ajax控件的基本作用使用需要注意的事项 UpdatePanel ScriptManager UpdateProgress

qinghecool的专栏 2457

MTK刷机工具

MTK刷机工具SP_Flash_Tool_exe_Windows_v5.1624.00.000

类型“ScriptManager”的控件“ScriptManager1”必须放在具有 runat=server 的窗体标记内。...

&lt;asp:ScriptManager ID="ScriptManager1" runat="server"&gt;            &lt;/asp:ScriptManager&gt; 这个内容必须放在&lt;form&gt;标记内

Aya Broke 1684

timer加载错误

小编是初学者,望大神多多指教!

我的目标是CEO,最近小目标是项目架构师! 1748

初学 ASP.NET AJAX :Timer UpdateProgress

来源:Dorian Deng - 博客园  1 概述  Timer UpdateProgressASP.NET AJAX Extensions 1.0 中所包含的其他二个简单的服务器控件。Timer 控件用于定时触发事件,而 UpdateProgress 控件用于在局部更新时为用户显示进度条。  2 Timer 控件  Timer 控件在预定的时间间隔中执行回发。如果将 Timer 控件

TonyWang的专栏 1450

初学.NETAJAX

AJAX中主要有个控件:ScriptManager、UpdatePanel、TimerUpdateProgress。 1、ScriptManager掌管着客户端Ajax页的多‘有脚本,并在页面中注册Ajax类库,用来实现页面的局部更新对Web服务的调用。 2、UpdatePanel局部刷新 3、Timer动态时间显示 4、UpdateProgress控件用于当页面异步更新数据时,显示

baidu_27624037的专栏 177

ASP.NET AJAX入门系列

ASP.NET AJAX入门系列将会写关于ASP.NET AJAX一些控件的使用方法以及基础知识,其中部分文章为原创,也有一些文章是直接翻译自官方文档,本部分内容会不断更新。 目录 ASP.NET AJAX入门系列(1):概述 导读:作为本系列文章的开篇,简单介绍一下ASP.NET AJAX的概况及各个组成部分。 ASP.NET AJAX入门系列(2):使用Scri...

weixin_33769207的博客 74

Timer控件简单应用

二维码: 扫描时间:

918

timer 与 updatepanel

AugustBlog的专栏 621

ASP.NET AJAX入门系列(10):Timer控件简单使用

本文主要通过一个简单示例,让Web页面在一定的时间间隔内局部刷新,来学习一下ASP.NET AJAX中的服务端Timer控件的简单使用。 主要内容 Timer控件的简单使用 1.添加新页面并切换到设计视图。 2.如果页面没有包含ScriptManager控件,在工具箱的AJAX Extensions标签下双击ScriptManager控件添加到页面...

weixin_34409703的博客 222

[翻译]Timer控件概要(Timer Control Overview)

 Timer控件概要一、引言:Timer控件实现固定时间间隔提交页面功能。如果你使用timer控件UpdatePanel控件可以实现固定时间间隔局部刷新页面。你也可以用timer控件来提交整个页面。二、本篇包含以下部分:1.使用情景2.背景3.实例代码三、Timer控件适用情况:你可以使用timer控件实现如下效果:1. 不刷新整个页面,周期性的更新一个或

daijun17的专栏 1021

ASP.NET AJAX入门系列:在多个UpdatePanle中使用Timer控件

 本文将使用Timer控件更新两个UpdatePanel控件,Timer控件将放在UpdatePanel控件的外面,并将它配置为UpdatePanel的触发器,翻译自官方文档。 主要内容    在多个UpdatePanel中使用Timer控件 1.添加一个新页面并切换到设计视图。2.如果页面没有包含ScriptManager控件,在工具箱中的AJAX Extension

编程小天空 1054

UpdatePanelScriptmanager的使用方法

ScriptManager UpdatePanel控件联合使用可以实现页面异步局部更新的效果。其中的UpdatePanel就是设置页面中异步局部更新区域,它必须依赖于 ScriptManager存在,因为ScriptManger控件提供了客户端脚本生成与管理UpdatePanel的功能。 几个重要的属性:      ScriptManager控件的EnablePartialRend

净HetyTse 1163

ASP.NET AJAX入门系列(11):在多个UpdatePanle中使用Timer控件

本文将使用Timer控件更新两个UpdatePanel控件,Timer控件将放在UpdatePanel控件的外面,并将它配置为UpdatePanel的触发器,翻译自官方文档。   主要内容     在多个UpdatePanel中使用Timer控件   1.添加一个新页面并切换到设计视图。 2.如果页面没有包含ScriptManager控件,在工具箱中的AJAX Extensions标签...

weixin_34247155的博客 127

TimerUpdatePanel实现局部刷新

1.Timer放在UpdatePanel里面外面实现的刷新效果大不一样。 A.如果放在里面,将看不到刷新效果,很赞,而且正在进行的js代码不会因为刷新而毁灭掉,比如说,我在页面弹出另一个页面,刷新的时候,这个页面还是弹出的,不会重刷新。 B.如果放在外面,会明显看到页面的刷新效果跳动,用户体验很不好,而且会将正在进行的js毁灭掉,比如我弹出的页面,会关闭掉。

wei_jie_zhang的专栏 3421

AJAX中UPDATEPANEL配合TIMER控件实现局部无刷新

首先加入UpdatePanel         <asp:UpdatePanel ID="UpdatePanel2" runat="server" UpdateMode="Conditional"> //注:UpdateMode为更新模式,设置此属性表示只刷新UpdatePanel中的部分,若不加此属性,默认为Always,刷新整个页面。...

weixin_30672295的博客 239
上一篇: 初学 ASP.NET AJAX (三):使用 UpdatePanel
下一篇: VS2005 SP1发布,解决只能创建WebSite,无法创建Web Application项目的问题
powerboy
博客等级 码龄25年 12粉丝 15原创
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值