UpdatePanel概览

UpdatePanel概览在使用 updatepanel 之前 一定要保证 ScriptManage 的使用 如果没有 ScriptManage 将无法使用 updatepanel 下面列举 UpdatePanel 的属性及含义 ChildrenAsTr 这个属性从表面意义上来看也能猜出个大概 它就是说明该 UpdatePanel 控件内部的子控件是不是要作为触发器 Triggers 默认为 true

在使用updatepanel之前,一定要保证
ScriptManager的使用.如果没有ScriptManager,将无法使用updatepanel.

下面列举UpdatePanel的属性及含义:


ChildrenAsTriggers:这个属性从表面意义上来看也能猜出个大概,它就是说明该UpdatePanel控件内部的子控件是不是要作为触发器(Triggers).默认为true,表明子控件可以作为UpdatePanel自身的触发器;相反,
ChildrenAsTriggers=false表明子控件不能作为该UpdatePanel自身的触发器.另外,如果值为false,则下面要介绍的一个属性—UpdateMode必须为Conditional.如果UpdateMode等于它的另外一个值(aways)的话,程序运行时则抛出异常.为嘛呢?请看UpdateMode.

UpdateMode:它有两个值,一个是aways,表示任何控件引发的异步回送都将更新该updatepanel,它太勤奋了.而上面提到的ChildrenAsTriggers=false则表示子控件不能作为触发器更新该updatepannel,显然,这两个设置是冲突的,所以运行时会抛出异常.UpdateMode的另外一个值是Conditional,它表示只有它内部的控件或者它指定的控件引发的异步回送,它才更新.它着懒,象我一样。哈哈~~:) 另外,如果在服务器端调用了它的Update()方法,该UpdatePanel也会更新.



Triggers:这是UpdatePanel中最重要的属性.在Triggers中可以添加两种触发器:postbacktrigger和asyncpostbacktrigger.postbacktrigger引发整个页面的回送(普通的页面回送),而asyncpostbacktrigger引发异步回送(ajax). 简单来说,asyncpostbacktrigger这个触发器的主要作用就是指定updatepanel外的某个控件的某个事件发生时,更新该updatepanel. 而postbacktrigger就是对于在updatepanel之内的控件,让它具有整页回送的能力.

总二言之,updatepanel控件本身是让它内部的子控件拥有异步回送能力.而asyncpostbacktrigger触发器是让updatepanel之外的控件也具有异步回送能力,postbacktrigger触发器则让updatepanel之内的控件具有整页回送能力.

Updatepanel无疑拥有很强大的能力,同时,它也拥有很大的弊端.

首先,和理想的ajax程序相比,它大大增加了网络传输量.理想的ajax程序只是在页面加载时传送html,其它后续的与服务器端的交互都只是传送数据.而updatepanel则在交互中传输了所有包含在它之内的数据,当然也包括html,这显然是在传输大量的无用数据.最坏的情况下有可能超过传统的整页传送方式的流量.

第二,在服务端没有因为updatepanel的应用而得到任何负载的减轻,相反,为了处理updatepannel相关逻辑,服务器的负担进一步加重.在执行过程中,updatepanel只是在页面呈现的时候去掉了updatepanel之外的内容,其余的部分和传统的页面传送没有任何区别.

PS:微软的控件确实很方便,但是问题也多多.我觉得如果是企业应用,对性能要求不高的话,控件是不错的选择,能缩短开发周期.我还没研究过,但是我想对于大访问量的web应用来说,我觉得还是纯粹的ajax客户端解决方案更为可行,不过听说开发起来比较困难.在了解过服务器端ajax控件后,我准备去学习一下客户端的解决方案.

编程小号
上一篇 2025-01-25 23:01
下一篇 2025-01-16 11:46

相关推荐

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/hz/134567.html