AJax技术

AtlasUpdatePanel技巧及常见问题

字号+ 作者:H5之家 来源:H5之家 2016-01-22 18:13 我要评论( )

首先,最重要的事情就是关注Atlas的老家:http://atlas.asp.net/。我们知道Atlas是一个新的,正在开发中的Framework,每月,甚至每周

首先,最重要的事情就是关注Atlas的老家:。

我们知道Atlas是一个新的,正在开发中的Framework,每月,甚至每周都在发生着变化,所以作为一个Atlas开发人员,经常关注是必须的,你会得到最新的消息,最新的特性以及最新的演示程序。

对于新手,提供了Atlas的API,Class文档可作参考(尚未全部完成,请多加关注)。下面还有一些Atlas以及ASP.NET的核心人物的个人网站/blog,同样值得经常(英文):

Atlas UpdatePanel服务器控件使用技巧

务必设定ScriptManager的EnablePartialRendering属性为true。有好多人向我抱怨说他们的UpdatePanel并不以AJAX的方式工作而还是引发普通的整页PostBack,原因就在于没有设定这个属性。

设定触发UpdatePanel的控件为服务器控件。因为无论ControlValueTrigger还是ControlEventTrigger,指定的属性/事件都是服务器端属性/事件,都只在服务器端属性变化或是服务器端发出事件时才能触发UpdatePanel的PostBack。

区别UpdatePanel的两种更新方式:Always和Conditional。请参考:。我们应该设定正确的更新方式以避免更新不必要更新的Panel,造成不必要的性能/网络开销。

不要只使用UpdatePanel。如果你从头开始建立一个Atlas程序,仅仅使用UpdatePanel来实现AJAX可能并不是最好的选择。UpdatePanel仅仅简单的从头渲染所有的位于ContentTemplate内部的控件,在某些情况下可能非常低效,例如,对于一个包含了一个有相当多结点的TreeView控件的UpdatePanel来说,如果你只是想简单的添加一个新节点,使用UpdatePanel将会从后台取得整个TreeView并重新渲染,远不及仅存储后并把这个新的节点添加到TreeView中来得高效。在这些情况下,你最好考虑使用一些较高级的Atlas客户端控件。当然,这也加大了一些开发的难度。

在页面的InitComplete事件被引发前必须保证UpdatePanel已经被初始化。也就是说,不能将UpdatePanel放置于比如一个DataList的HeaderTemplate中,因为HeaderTemplate中的内容是在Databinding时期才得到的,而这时页面的InitComplete事件早已经结束。

在UpdatePanel中不要使用Response.Write(); 。这会扰乱UpdatePanel的执行过程。

Atlas的客户端脚本可以使用于任何的开发平台/语言中。例如ASP.NET 1.1,纯HTML甚至PHP,但是像UpdatePanel这样的服务器端控件只能用于ASP.NET 2.0页面中。Atlas的客户端脚本实际上就是一些经过组织的JavaScript文件,当然是与服务器端选用的技术无关的。但当你使用非ASP.NET 2.0环境时,需要手动加入对这些JavaScript文件的引用,因为你无法使用ASP.NET 2.0中的服务器端控件ScriptManager。

小心在UpdatePanel中包含第三方JavaScript实现的组件。开发跨平台的JavaScript Framework是一件很艰巨的任务,在目前的Atlas实现中仍有很多兼容性的问题。让我们期待未来会更好或者干脆现在想办法自己解决吧。

同时,在页面上添加一个UpdateProgress服务器端控件将会使用户了解你的程序在做什么。下面顺便提一些UpdateProgress控件的使用技巧。

UpdateProgress控件的使用技巧

在页面上添加一个且只添加一个UpdateProgress控件。UpdateProgress控件应当是一个全局的控件,所有的AJAX操作都会自动地由UpdateProgress控件来处理。想象一下如果Gmail一下子显示了好多个Loading提示,用户一定会不知所措吧。

在UpdateProgress的Template中有一个magic ID:abortButton,你可以提供一个服务器端Button或者LinkButton控件并指定ID为abortButton,使用户可以取消当前执行的AJAX请求。当然,使用magic ID并不是一个好的设计方法,相信在未来的版本中这个magic ID会被一个类似的东西取代。当然,在当前的Atlas版本中,请记住abortButton。

(责任:铭铭 mingming_ky@126.com

 

1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

相关文章
  • ajax技巧制作得在线歌词搜索功效

    ajax技巧制作得在线歌词搜索功效

    2016-02-06 14:47

  • 技巧和诀窍:UpdateProgress控件和AJAX活动图像动画

    技巧和诀窍:UpdateProgress控件和AJAX活动图像动画

    2016-01-23 13:00

  • Ajax(Asynchronous JavaScript + XML)的定义

    Ajax(Asynchronous JavaScript + XML)的定义

    2016-01-17 17:25

  • AJAX - 请求服务器

    AJAX - 请求服务器

    2016-01-17 16:00

网友点评