.NET2.0环境下的Ajax选型和应用(提供Demo源码下载)
作者: 字体:[增加 减小] 来源:互联网 时间:2017-05-11
通过本文主要向大家介绍了.NET2.0环境下的Ajax选型和应用(提供Demo源码下载)等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com
主题:.NET2.0环境下的Ajax选型和应用
</div>
1 Ajax 应用框架的选型及其性能对比 </div>
2 如何应用 Ajax </div>
3 应用 Ajax 过程中应该着重注意的问题 </div>
Jimmy.Ke </div>
2006-11-13 </div>
</div>
一 Demo说明
Ajax Demo Web Site 是一个完整的 .NET Website ,其中包含 5 个 ASPX 页面及其对应的 CS 文件。 </div>
为了方便对比, Demo 中使用了三种 Ajax 应用方式: </div>
一是使用微软提供的 Atlas 应用框架,二是使用 Ajax.NET Professional 开源框架,三是使用针对 Ajax 的单纯的 Javascript 包 Prototype 。三者对应的关联文件如下表所示: </div>
</div>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
</div>
</div>
二 研究结论
1 Ajax 应用框架选型
Ajax 应用的核心是通过 XMLHttpRequest 对象向 Server 提交 Client 的请求,同步或者异步的获取 Server 返回的 Response 信息,而 Client 和 Server 之前数据传递的方式可以采用 Text 、 XML 或者 JSON 格式。 </div>
Demo 中使用到的 Prototype 、 Ajax.NET Pro 、 Atlas Beta2 代表了目前 Ajax 应用的三种主要方式: </div>
Prototype 是目前应用比较广泛的最底层的远程调用工具包,其通常使用自己的 API 封装 XMLHttpRequest 对象,使得调用 XMLHttpRequest 更加简单直观。在 XMLHttpRequest 之前,我们通常使用内嵌的 IFRAME 来实现无刷新页面发送 http 请求的效果。因此,这些远程调用包必须支持那些不支持 XMLHttpRequest 的浏览器,以提高浏览器兼容性。类似的工具还比如 DOJO 。这类工具在应用过程中需要设定自己的 URL 和参数,并且编写相应的 callback 函数来处理 Server 返回的 Response 结果。 </div>
在 PrototypeDemo.aspx 中,我们通过 Ajax.Request 向服务器提交请求,在 callback 函数中实现对 Server 的 Response 结果的处理和显示。当然,每个请求的 URL 参数是不同的。 </div>
</div>
Ajax.NET Pro 则是一种基于基于代理实现的 Ajax 框架,其允许 Client 的 Javascript 直接与 Server 的类实现一一映射,使 Client 的 Javascript 可以通过他们直接访问 Server 的类对象及其 API ,其访问方式类似 RPC ,直接调用相应的 API 完成业务操作,仍然需要编写相应的 callback 函数处理 Server 返回的 Response 结果。 </div>
在 AjaxProDemo.aspx.cs 中,我们通过在方法头部添加 [AjaxPro.AjaxMethod] 标注,在 Page_Load 中将类以 AjaxPro.Utility.RegisterTypeForAjax(typeof(AjaxProDemo)) 的形式予以注册, 这样就可以在 Client 直接调用。 </div>
Atlas 则是基于组件的应用方式,其允许使用拖拉的方式在 IDE 的设计视图中快速创建包含 Ajax 功能的组件,并且能够最大程度的利用 .NET 本身提供的 DataGrid 、 Button 等 UI 控件。这些组件提供了快速开发 Ajax 应用的另一捷径,开发过程不需要编写 callback 函数。 </div>
就目前而言, Atlas 能够利用最多的是 UpdatePanel 控件,通过其实现页面的无刷新或者部分刷新。 </div>
2 Ajax 框架性能及开发效率对比
</div>
Demo 中的四个 Sample 都实现了针对 Product 的简单 CRUD 功能。这里我们使用 Fiddler HTTP Debugger 来测试整个操作过程中 Client 和 Server 交互的数据量。 </div>
</div>
|
|
|
|
PrototypeServerResponse.aspx </div>
|
Request Count: 1 </div>
Bytes Sent: 380 </div>
|
|
|
ajaxpro/AjaxProDemoSecond, </div>
|
Request Count: 1 </div>
Bytes Sent: 493 </div>
|
|
|
|
Request Count: 1 </div>
Bytes Sent: 827 </div>
|
</div>
</div>
| |