UpdatePanel概览

UpdatePanel概览微软的asp.netajax为我们进入AJAX世界提供了方便的入口,让许多不熟悉js甚至不了解什么是ajax的人也能享受到ajax技术的好处.在asp.netajax1.0中,updatepan

大家好,又见面了,我是你们的朋友全栈君。    微软的asp.net ajax为我们进入AJAX世界提供了方便的入口,让许多不熟悉js甚至不了解什么是ajax的人也能享受到ajax技术的好处.在asp.net ajax 1.0中,updatepanel是其中的核心部分.

    在使用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控件后,我准备去学习一下客户端的解决方案.

    

    

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

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/155020.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号