本课程将从头开始使用ASP.NET AJAX客户端框架/组件创建一个“纯粹”的Ajax应用程序的全过程。适合于开发者学习Ajax所带来的这种崭新的开发方式,即将表示层完全放在客户端,浏览器和服务器之间只传送纯粹的数据。同时也能帮助开发者融会贯通ASP.NET AJAX的客户端框架。
观看录像:(coming soon...)
下载PPT:
下载代码:
本代码来自最后一章,书中也详细介绍了项目具体的分析过程以及实现、编码方法。
问题解答(朋友们可以在这里继续提问)
讲师:活动日期:2007-06-20 14:30--16:00
________________________________________
Q:看到我的问题了吗?有母版页后,opener.document.getElement("id")不能用了?有没有什么替代方法?
A:母版页面应该和这个问题关系不大,因为毕竟母版页和内容实在服务器端组装起来,然后作为一个统一的HTML页面发送给客户端的。opener.document.getElement怀疑应为opener.document.getElementById。如果有需要,请将程序的示例代码发送给我。
________________________________________
Q:这个“纯粹”的Ajax应该就是指只在页面中加入scriptManager之后来使用它的AjaxLibrary进行编程的吗?
A:可以这样理解,就是客户端表示层逻辑都放在客户端JavaScript中实现,我们在程序中编写客户端的控件/组件,而服务器端却只提供“纯粹”的数据,然后借助ASP.NET AJAX异步通讯层完成服务器和客户端的通讯。
________________________________________
Q:if(typeof(sys)!...那句写在什么位置
A:写在独立JavaScript文件的最后一行。
________________________________________
Q:有人说Ajax的是网站性能的杀手,会占用大量的带宽,请问您有什么看法?
A:滥用Ajax确实会造成不必要的网络带宽浪费,不过合理地使用Ajax功能却会大大节省网络带宽——毕竟只传输了页面部分内容。
________________________________________
Q:add_initializeRequest在一个页面的生命周期中起到什么作用?
A:initializeRequest是PageRequestManager在异步回送过程中发出的第一个事件。在该事件的处理函数中,我们可以根据实际需要(例如客户端已经拥有所需要的数据,或是为其他高优先级的请求让位等)取消该本次异步回送请求。
________________________________________
Q:我在网上学到了一种方法:建立一个类,类里面有只有一个属性,该属性返加一个带HTML标记的字符串,然后通过webservice 初始化该类。和您刚才的讲的方法一样吗?
A:对不起我没能理解您的意思,能再明确一些说明么?
________________________________________
Q:如何响应服务端的事件
A:如果是在服务器端响应时间,那么只要编写事件处理函数就好了。如果您想在客户端响应服务器端事件,那么基于现在的HTTP模型还比较困难。
________________________________________
Q:刚才的例子中,首先显示progress,然后调用回调函数,可每个回调函数里都有一个能数result,那个参数是类的实例吗?
A:result中的数据就是调用Web Service方法的返回值,如果Web Service方法返回int,那么它就是个int,如果Web Service方法返回数组,那么它就是个数组。
________________________________________
Q:RSS.NET 这个 Library 可以 share 一下吗? 可以发给我们吗?
A:请至免费下载。
________________________________________
Q:听说在Orcas中集成了ASP.Net Ajax控件,是这样吗?
A:是的,Orcas中ASP.NET AJAX控件已经被集成到Visual Studio的Toolbox中。
________________________________________
Q:如果用asp.net ajax框架,只有用客户端调用webservice这一种方法吗?
A:还可以调用ASP.NET页面中的静态方法。
________________________________________
Q:可以在initializeRequest过程中暂停某个控件的PostBack行为吗?不是Abort,而是指让其等待某个客户端的相应后,再决定是否继续执行
A:可以尝试如下思路:在initializeRequest时克隆并保存当前的Sys.Net.WebRequest对象,然后取消原来的这个WebRequest。在其他响应到达之后,如果有需要,再取得这个保存的WebRequest并继续发出。