您的位置:首页 > 编程语言 > ASP

ASP.NET MVC框架开发系列课程(8):AJAX

2009-04-24 22:30 639 查看

AJAX技术

• Asynchronous JavaScript and XML
• 在客户端发起异步请求
– 不会阻塞页面,提高用户体验
–减少数据传输尺寸,提高性能
• 几乎已经成为Web开发标准技术
– 对Web服务器来说,AJAX请求和普通请求没
有任何区别

AJAX技术的问题

• 滥用
–通信量有增无减
–增加服务器端压力
• 浏览器兼容问题  
– AJAX请求          XML request  不同的浏览器构造不一样
– DOM操作

ASP.NET MVC中的AJAX运用

• 目前ASP.NET MVC有没有自带AJAX功能?
–没有(AJAX功能已经在Roadmap中) 未来MVC框架可能自带支持AJAX
• 有没有ASP.NET MVC不支持的AJAX技术?
–没有
• AJAX是纯客户端技术  客户端和服务端是可以分离的
– 任何客户端框架可以与任何服务器技术配合
– AJAX for PHP == AJAX for ASP.NET
– AJAX for ROR == AJAX for ASP.NET

常用AJAX(客户端)框架

• Microsoft AJAX Library  框架中自带的类库 提供浏览器兼容层等
–详见《深入浅出ASP.NET AJAX》系列课程
• Prototype 
• jQuery
• Mootools
• etc.

常用传输模式:数据

• XML?很少使用XML
–客户端解析困难
– 数据冗余  需要花时间解析开节点和闭节点
• JSON!
– JavaScript Native Support
– 优点:数据相对紧凑

常用传输模式:内容

• 传输数据
–优点:传输数据尺寸小
– 缺点:作呈现时需解析DOM结构 
• 传输内容
– 优点:直接传输呈现内容,呈现逻辑统一
– 缺点:数据量相对较大

ASP.NET AJAX

• 与ASP.NET AJAX紧密结合的AJAX框架
– ASP.NET AJAX Extensions
– Microsoft AJAX Library
• 官方出品
– ASP.NET AJAX != AJAX.NET
• 提供UpdatePanel等强大服务器端控件
–透明,高效地使用AJAX功能
– 尽可能减少脚本编写

UpdatePanel的悲哀

• 在ASP.NET MVC中UpdatePanel几乎无任
何用武之地
– 没有PostBack
–理念不同

异步访问Web Services

• 异步访问Web Service的功能依旧存在
–客户端功能
– 自动生成代理脚本
• 详细讲座:
– 《深入浅出ASP.NET AJAX》系列(4) – (6)

服务器端功能真的完蛋了吗?

• 服务器端控件没有完蛋
–完蛋的只是PostBack相关功能
• 只要避开PostBack的功能依旧好用
–例如Ajax Control Toolkit

AJAX Control Toolkit

• ASP.NET AJAX的开源控件集合
• 数十种可以直接使用的控件
– 需要
–需要
– 注意Web.config配置
• 详见:
–《深入浅出ASP.NET AJAX》系列(26) – (28)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: