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

    

    

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

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

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 智慧工地 安全帽识别系统

    智慧工地 安全帽识别系统随着时代的发展科技也越来越发达,近些年来建筑行业在我国怦然兴起,关于建筑方面的隐患也日益增加,为此北京富维图像公司研发了一款智慧工地安全帽识别这项技术,可以有效的避免一些事故的发生。智慧工地安全帽识别这项技术它能有效识别作业过程中突发的危险以及预防危险的到临,以下是关于安全帽识别系统的详细介绍。第一北京富维图像公司对智慧工地安全帽识别系统采用人脸识别功能,可360°识别工作人员是否佩戴安全帽,可以通过前段摄像机进…

    2022年5月12日
    56
  • executescalar mysql_ExecuteScalar[通俗易懂]

    executescalar mysql_ExecuteScalar[通俗易懂]这两个答案和一点点思考使我想到了一个接近答案的东西。首先再澄清一下:该应用程序是用C#(2.0+)编写的,并使用ADO.NET与SQLServer2005进行通信。镜像设置是托管主体和镜像的两个W2k3服务器以及托管作为监视器的快速实例的第三个服务器。这样做的好处是,故障转移对于使用数据库的应用程序几乎是透明的,它将对某些连接引发错误,但从根本上讲一切都会很好地进行。是的,我们得到了奇怪的误报…

    2022年6月30日
    27
  • oracle修改用户的密码_修改linux用户密码

    oracle修改用户的密码_修改linux用户密码oracle中修改用户密码首先是win键+R输入cmd输入sqlplus/assysdba,回车,此时进入到SQL>输入alterusersystemidentifiedbysystem;这行代码的意思就是修改system用户的密码为system(注意:代码末尾要加上;分号)…

    2022年7月28日
    11
  • mybatis中LIKE模糊查询的几种写法以及注意点

    mybatis中LIKE模糊查询的几种写法以及注意点mybatis中对于使用like来进行模糊查询的几种方式:(1)使用${…}注意:由于$是参数直接注入的,导致这种写法,大括号里面不能注明jdbcType,不然会报错org.mybatis.spring.MyBatisSystemException:nestedexceptionisorg.apache.ibatis.reflection.ReflectionExc…

    2022年5月7日
    67
  • vscode代码自动提示_vscode智能提示

    vscode代码自动提示_vscode智能提示VSCode自动补全,VSCode当中的自动补全内容,其实是由语言服务来提供的。本文介绍VSCode自动补全功能和VSCode自动补全设置。VSCode为编程语言工作者提供了统一的API,即LanguageServerProtocol,每种语言都能够通过实现这个API在VSCode上得到类似IDE的开发体验,而各个语言根据这个API实现的服务,就被称为语言…

    2025年8月19日
    3
  • mac进入路径_mac终端找不到命令

    mac进入路径_mac终端找不到命令如果你想将当前commandline会话切换到其他目录,需要用到三个命令:pwd,ls和cd。pwd的含义是“printworkingdirectory”,会显示当前目录的绝对路径。 ls的含义是“listdirectorycontents”,它会列出当前目录的内容。这个命令还有其他参数可选。 cd的含义是“changedirectory”,它会改变当…

    2022年10月10日
    2

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

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