ASP.NET AJAX使用方法概述(三)

简介: ASP.NET AJAX使用方法概述(三)

2.5 ASP.NET AJAX使用方法概述

完成了上述配置之后,我们就可以立刻开始一次令人激动的ASP.NET AJAX之旅了!不过无论在开始什么样的旅行之前,我们都应该选择好最佳的路线。在上面的介绍中,我们知道ASP.NET AJAX分为服务器端和客户端两个部分,其中很多功能既可以完全使用客户端功能实现,也可以完全使用服务器端功能实现。那么这两种方法有什么不同?针对实际开发中遇到的种种不同的情况,我们应该如何选择最合适的方法呢?

2.5.1 服务器端和客户端使用方法的比较

首先,我们比较一下这两种开发方式的优劣,见表2-1。

表2-1 ASP.NET AJAX服务器端和客户端实现方式比较

比较内容

服务器端实现

客户端实现

性能

功能

较弱

强大

开发难度

跨平台(服务器端)

不支持

完全支持

从表2-1中可以看到,ASP.NET AJAX服务器端和客户端实现方式主要有如下4点显著差异:

(1) 性能:由于Ajax应用程序将在客户端运行,所以无论是服务器端实现方式还是客户端实现方式,最终都将生成JavaScript代码并在客户端浏览器中运行。然而,在服务器端实现方式中,服务器端控件将在运行时生成JavaScript代码并发送至客户端,这样就加重了服务器端的负担,也造成了程序运行效率的下降。

(2) 功能:ASP.NET AJAX所提供的服务器端控件并不是很多,其功能也不够丰富(但是作为服务器端控件扩展包的ASP.NET AJAX Control Toolkit,已经大大丰富了现有的ASP.NET AJAX服务器端控件,并且还在迅速发展中)。而ASP.NET AJAX的客户端控件则已经具备了一个较为完整的架构以及非常完善的功能,甚至可以和ASP.NET 2.0内建的服务器端控件框架相媲美。

(3) 开发难度:ASP.NET AJAX服务器端实现方式的编程模型和ASP.NET几乎完全一致。若熟悉ASP.NET开发,则将很快上手,并可充分借助Visual Studio提供的强大的功能(如编译期检查、智能感知等)提高开发效率,并且这种编程模型几乎不需要开发者具备任何的JavaScript(甚至Ajax)知识。而客户端实现方式则与传统的ASP.NET编程模型大相径庭,你不得不放弃现有的ASP.NET知识以及开发流程,而去接受并学习一种新的开发模型——ASP.NET AJAX XML脚本,并忍受客户端开发的种种不便。特别令开发者感到困难的是,当前甚至还没有任何一个IDE可以较为完美地支持JavaScript的开发/调试工作。

(4) 服务器端跨平台能力:由于ASP.NET AJAX的服务器端控件是基于ASP.NET 2.0开发的,所以这些控件也只能在ASP.NET 2.0框架的服务器端运行。自然地,对于非ASP.NET 2.0平台,我们将无法使用ASP.NET AJAX的服务器端功能。但因为ASP.NET AJAX客户端功能均由标准的JavaScript实现,与服务器端开发平台无关,所以我们可以在非ASP.NET 2.0服务器端实现,例如PHP页面中手工添加ASP.NET AJAX客户端脚本库的引用,进而使用其完整的客户端功能。

2.5.2 选择最适合的使用方法

这样,对于开发中遇到的不同情况以及不同需求,我们应该区别对待并选择合适的手工开发方式。下面是几个常见的场景。

(1) 为现有的ASP.NET 2.0应用程序增加部分Ajax功能:这种情况常常发生于我们已经拥有了一个带有完整功能的传统ASP.NET 2.0应用程序,但需要为其中的某些界面元素添加一些Ajax功能时。例如,为某个文本框添加自动完成功能,为某个页面中经常要变化的控件(例如,某个提供分页、排序功能的GridView)添加局部更新功能等。由于ASP.NET AJAX的客户端实现方式与现有的ASP.NET编程模型格格不入,且我们又不希望完全重写已经具有完备功能的现有程序,所以这时就应该选择服务器端实现方式。ASP.NET AJAX的服务器端实现方式也似乎正是为这种情况所设计的。你甚至不用修改一行现有的代码,只需在页面中添加一个新的ASP.NET AJAX服务器端扩展器控件,然后将其指向页面中某个现有的ASP.NET服务器端控件,即可为其添加丰富的客户端功能。或者,你可以使用ASP.NET AJAX的服务器端UpdatePanel控件将现有页面的某一部分包围起来,这样,这部分页面即自动拥有了Web应用程序梦寐以求的Ajax方式的局部更新功能!这些内容将在接下来几章中详细介绍。

(2) 从头创建“纯粹的”Ajax应用程序:所谓“纯粹的”Ajax应用程序,指的是服务器端没有任何表示层逻辑,而只用来提供数据,同时所有的表示层逻辑均在客户端JavaScript中完成的Web应用程序。极端一点说,这种“纯粹的”Ajax应用程序将只有一个页面,所有的功能(包括用户输入、与服务器通信、界面改变等)均通过客户端JavaScript来实现,例如Windows Live Mail。这无疑是对我们熟悉的ASP.NET应用程序开发模型的彻底颠覆!然而,它却能够带来非常优越的服务器端性能,以及前所未有的无比清晰的程序架构。对于这种需求,我们则显然必须使用ASP.NET AJAX的客户端实现方式。这种方式将让你能够对应用程序的任何一个微小的细节进行非常精确且高效的控制。这些内容将在本书第Ⅱ卷中详细介绍。

(3) 在非ASP.NET 2.0服务器端平台上使用ASP.NET AJAX:这种情况下的ASP.NET AJAX服务器端实现将鞭长莫及,我们只能考虑使用ASP.NET AJAX的客户端实现方式。但即使没有了ASP.NET AJAX服务器端的协助,ASP.NET AJAX客户端功能的光芒仍旧无法遮挡,极为引人注目。

相信通过这些分析,你已经可以找到这次ASP.NET AJAX之旅的最佳路线了。但需要注意的是,ASP.NET AJAX的两种实现方式并不是互相对立的,而是相辅相成的。上面所说的“选择某种实现方式”仅仅意味着“偏重使用某种实现方式”。例如,对于ASP.NET 2.0下纯粹使用客户端实现方式的ASP.NET AJAX开发,我们仍需要服务器端ScriptManager控件向浏览器发送ASP.NET AJAX客户端框架所必需的JavaScript文件。

相关文章
|
1月前
|
开发框架 缓存 前端开发
安装ASP.NET AJAX (一安装)
安装ASP.NET AJAX (一安装)
24 0
|
1月前
|
XML 开发框架 .NET
C# .NET面试系列八:ADO.NET、XML、HTTP、AJAX、WebService
## 第二部分:ADO.NET、XML、HTTP、AJAX、WebService #### 1. .NET 和 C# 有什么区别? .NET(通用语言运行时): ```c# 定义:.NET 是一个软件开发框架,提供了一个通用的运行时环境,用于在不同的编程语言中执行代码。 作用:它为多语言支持提供了一个统一的平台,允许不同的语言共享类库和其他资源。.NET 包括 Common Language Runtime (CLR)、基础类库(BCL)和其他工具。 ``` C#(C Sharp): ```c# 定义: C# 是一种由微软设计的面向对象的编程语言,专门为.NET 平台开发而创建。 作
207 2
|
1月前
|
XML JSON 前端开发
Ajax的使用方法
Ajax的使用方法
20 0
|
1月前
|
机器学习/深度学习 存储 算法
MATLAB神经网络拟合回归工具箱Neural Net Fitting的使用方法
MATLAB神经网络拟合回归工具箱Neural Net Fitting的使用方法
|
7月前
|
开发框架 前端开发 .NET
用ajax和asp.net实现智能搜索功能
用ajax和asp.net实现智能搜索功能
55 0
|
1月前
|
开发框架 前端开发 .NET
ASP.NET CORE 3.1 MVC“指定的网络名不再可用\企图在不存在的网络连接上进行操作”的问题解决过程
ASP.NET CORE 3.1 MVC“指定的网络名不再可用\企图在不存在的网络连接上进行操作”的问题解决过程
91 0
|
1月前
|
开发框架 前端开发 JavaScript
JavaScript云LIS系统源码ASP.NET CORE 3.1 MVC + SQLserver + Redis医院实验室信息系统源码 医院云LIS系统源码
实验室信息系统(Laboratory Information System,缩写LIS)是一类用来处理实验室过程信息的软件,云LIS系统围绕临床,云LIS系统将与云HIS系统建立起高度的业务整合,以体现“以病人为中心”的设计理念,优化就诊流程,方便患者就医。
34 0
|
1月前
|
开发框架 前端开发 .NET
C# .NET面试系列六:ASP.NET MVC
<h2>ASP.NET MVC #### 1. MVC 中的 TempData\ViewBag\ViewData 区别? 在ASP.NET MVC中,TempData、ViewBag 和 ViewData 都是用于在控制器和视图之间传递数据的机制,但它们有一些区别。 <b>TempData:</b> 1、生命周期 ```c# TempData 的生命周期是短暂的,数据只在当前请求和下一次请求之间有效。一旦数据被读取,它就会被标记为已读,下一次请求时就会被清除。 ``` 2、用途 ```c# 主要用于在两个动作之间传递数据,例如在一个动作中设置 TempData,然后在重定向到另
148 5
|
1月前
|
开发框架 前端开发 .NET
进入ASP .net mvc的世界
进入ASP .net mvc的世界
39 0
|
10月前
|
存储 开发框架 前端开发
[回馈]ASP.NET Core MVC开发实战之商城系统(五)
经过一段时间的准备,新的一期【ASP.NET Core MVC开发实战之商城系统】已经开始,在之前的文章中,讲解了商城系统的整体功能设计,页面布局设计,环境搭建,系统配置,及首页【商品类型,banner条,友情链接,降价促销,新品爆款】,商品列表页面,商品详情等功能的开发,今天继续讲解购物车功能开发,仅供学习分享使用,如有不足之处,还请指正。
134 0

相关实验场景

更多