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

来源:互联网 发布:360软件管家分辨率 编辑:程序博客网 时间:2024/05/16 05:06

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的开源控件集合
• 数十种可以直接使用的控件
– 需要

  • ASP.NET MVC框架开发系列课程(8):AJAX
  • ASP.NET MVC框架开发系列课程(8):AJAX
  • ASP.NET MVC框架开发系列课程(8):AJAX
  • ASP.NET MVC框架开发系列课程(8):AJAX
  • ASP.NET MVC框架开发系列课程(8):AJAX
  • ASP.NET MVC框架开发系列课程
  • ASP.NET MVC框架开发系列课程
  • ASP.NET MVC框架开发系列课程二
  • ASP.NET MVC框架开发系列课程一
  • ASP.NET MVC框架开发系列课程(视频课程讲师:赵劼)
  • MSDN Webcast 系列课程之《ASP.NET MVC 3 开发实践系列课程》
  • ASP.NET AJAX深入浅出系列课程
  • ASP.NET AJAX深入浅出系列课程
  • ASP.NET AJAX深入浅出系列课程(视频课程讲师:赵劼)
  • 实战ASP.NET AJAX系列课程(视频课程讲师:陈黎夫)
  • 分享ASP.NET视频系列教程——第二十讲 ASP.NET MVC开发框架
  • ASP.NET AJAX深入浅出系列课程(学习总结一)
  • ASP.NET AJAX深入浅出系列课程(学习总结二)
  • SilverLight 系列第二讲:使用Canvas对象
  • ASP.NET MVC框架开发系列课程(8):AJAX
  • CMFCListCtrl自动排序的实现
  • DLL何时需共享内存管理器
  • ASP.NET MVC框架开发系列课程(8):AJAX
  • ASP.NET MVC框架开发系列课程(8):AJAX
  • ASP.NET MVC框架开发系列课程(8):AJAX
  • 安装了CB2009却发现没有VCL源码?
  • var目录 分析
  • 领略Spring 3.x 时代的Spring MVC
  • 换手率
  • 分频----vhdl语言将时钟信号分为四种相位
  • 学习
  • ActionScript3.0中获取变量类型的方法
  • 原创粉丝点击