源码网商城,靠谱的源码在线交易网站 我的订单 购物车 帮助

源码网商城

Asp.Net 和 AJAX.Net 的区别第1/2页

  • 时间:2020-08-02 11:19 编辑: 来源: 阅读:
  • 扫一扫,手机访问
摘要:Asp.Net 和 AJAX.Net 的区别第1/2页
原文: [url=http://www.microsoft.com/china/msdn/library/webservices/asp.net/us0501ASPNETPerformance.mspx?mfr=true]http://www.microsoft.com/china/msdn/library/webservices/asp.net/us0501ASPNETPerformance.mspx?mfr=true[/url] 适用于: AJAX(异步 JavaScript 和 XML) Microsoft AJAX.NET Microsoft ASP.NET [b]摘要:[/b]了解如何将 AJAX(异步 JavaScript 和 XML)用于您的 Microsoft ASP.NET 应用程序,使其互动性更强、响应更及时。 下载本文的代码示例 [url=http://download.microsoft.com/download/2/d/e/2def9af3-7bcb-4953-9349-a01bc7b2876d/AjaxASPNETCS.msi]AjaxASPNETCS.msi(使用 C# 语言)[/url] 下载本文的代码示例 [url=http://download.microsoft.com/download/2/D/E/2DEF9AF3-7BCB-4953-9349-A01BC7B2876D/AjaxASPNETVB.msi]AjaxASPNETVB.msi(使用 Visual Basic 语言)[/url]
本页内容
[url=http://www.microsoft.com/china/msdn/library/webservices/asp.net/ASPNetSpicedAjax.mspx#E1B][img]http://www.microsoft.com/library/gallery/templates/MNP2.Common/images/arrow_px_down.gif[/img] [/url] [url=http://www.microsoft.com/china/msdn/library/webservices/asp.net/ASPNetSpicedAjax.mspx#E1B]简介[/url]
[url=http://www.microsoft.com/china/msdn/library/webservices/asp.net/ASPNetSpicedAjax.mspx#E5B][img]http://www.microsoft.com/library/gallery/templates/MNP2.Common/images/arrow_px_down.gif[/img] [/url] [url=http://www.microsoft.com/china/msdn/library/webservices/asp.net/ASPNetSpicedAjax.mspx#E5B]什么是 AJAX?[/url]
[url=http://www.microsoft.com/china/msdn/library/webservices/asp.net/ASPNetSpicedAjax.mspx#EWC][img]http://www.microsoft.com/library/gallery/templates/MNP2.Common/images/arrow_px_down.gif[/img] [/url] [url=http://www.microsoft.com/china/msdn/library/webservices/asp.net/ASPNetSpicedAjax.mspx#EWC]用于 ASP.NET 的 AJAX[/url]
[url=http://www.microsoft.com/china/msdn/library/webservices/asp.net/ASPNetSpicedAjax.mspx#ERD][img]http://www.microsoft.com/library/gallery/templates/MNP2.Common/images/arrow_px_down.gif[/img] [/url] [url=http://www.microsoft.com/china/msdn/library/webservices/asp.net/ASPNetSpicedAjax.mspx#ERD]手头的 AJAX[/url]
[url=http://www.microsoft.com/china/msdn/library/webservices/asp.net/ASPNetSpicedAjax.mspx#ELGAC][img]http://www.microsoft.com/library/gallery/templates/MNP2.Common/images/arrow_px_down.gif[/img] [/url] [url=http://www.microsoft.com/china/msdn/library/webservices/asp.net/ASPNetSpicedAjax.mspx#ELGAC]AJAX 与您[/url]
[url=http://www.microsoft.com/china/msdn/library/webservices/asp.net/ASPNetSpicedAjax.mspx#EUGAC][img]http://www.microsoft.com/library/gallery/templates/MNP2.Common/images/arrow_px_down.gif[/img] [/url] [url=http://www.microsoft.com/china/msdn/library/webservices/asp.net/ASPNetSpicedAjax.mspx#EUGAC]结论[/url]
[url=http://www.microsoft.com/china/msdn/library/webservices/asp.net/ASPNetSpicedAjax.mspx#top][img]http://www.microsoft.com/library/gallery/templates/MNP2.Common/images/arrow_px_up.gif[/img] [/url][url=http://www.microsoft.com/china/msdn/library/webservices/asp.net/ASPNetSpicedAjax.mspx#top]返回页首[/url]
[url=http://en.wikipedia.org/wiki/AJAX][i]AJAX Wikipedia entry[/i][/url](英文)。 AJAX 到底是什么?AJAX 使您能够通过 JavaScript 调用执行服务器端方法,而不需要刷新浏览器。将它视为发生于用户后台的小型请求/响应。如果您仍不清楚 AJAX 是什么,请看 Google 上的两个常见示例:[url=http://www.google.com/webhp?complete=1&hl=en][i]Google Suggests[/i][/url](英文)和 [url=http://maps.google.com/][i]Google Maps[/i][/url](英文)。如果您不熟悉 AJAX,这两个应用程序的响应会使您有点兴奋。
[url=http://www.microsoft.com/china/msdn/library/webservices/asp.net/ASPNetSpicedAjax.mspx#top][img]http://www.microsoft.com/library/gallery/templates/MNP2.Common/images/arrow_px_up.gif[/img] [/url][url=http://www.microsoft.com/china/msdn/library/webservices/asp.net/ASPNetSpicedAjax.mspx#top]返回页首[/url]
[url=http://www.codeproject.com/aspnet/ClientCallBackAspNet2.asp][i]客户端回调功能[/i][/url](英文)引入了独具特色的异步回调,并且[url=http://weblogs.asp.net/scottgu/archive/2005/06/28/416185.aspx][i]最近宣布[/i][/url](英文)代号为“Atlas”的 AJAX 正在实现中。 术语可能有些混乱,但是当我介绍 AJAX 时,就是在介绍从客户端异步调用服务器端函数的整体框架。提到 Ajax.NET 时,我是指能够帮助您创建利用 AJAX 框架的解决方案的特定实现。 要了解有关 ASP.NET 2.0 客户端回调功能的详细信息,请访问 [url=http://weblogs.asp.net/bleroy/archive/2005/07/14/419436.aspx][i]Bertrand Le Roy [/i][i]的博客[/i][/url](英文)。
[url=http://www.microsoft.com/china/msdn/library/webservices/asp.net/ASPNetSpicedAjax.mspx#top][img]http://www.microsoft.com/library/gallery/templates/MNP2.Common/images/arrow_px_up.gif[/img] [/url][url=http://www.microsoft.com/china/msdn/library/webservices/asp.net/ASPNetSpicedAjax.mspx#top]返回页首[/url]
[url=http://ajax.schwarz-interactive.de/csharpsample/default.aspx][i]文档[/i][/url](英文)和[url=http://www.schwarz-interactive.de/][i]网站[/i][/url](英文)对开发人员快速入门非常有用。在介绍使用此技术的一些具体示例之前,我们将简要回顾您所需要知道的核心步骤。 首先从 [url=http://www.schwarz-interactive.de/][i]AJAX.NET [/i][i]项目网站[/i][/url](英文)上下载并解压缩 AJAX 文件,然后按照您的喜好在 Visual Basic .NET 或 C# 中创建新的 ASP.NET 项目,再向 AJAX.dll 文件[url=http://msdn.microsoft.com/asp.net/default.aspx?pull=/library/en-us/vbcon/html/vbtskAddingRemovingReferences.asp][i]添加引用[/i][/url](英文)。唯一的额外配置步骤是在 [b]<system.web>[/b] 元素中(位于 [b]web.config[/b] 文件中)添加以下代码。
<configuration>
<system.web>
<httpHandlers>
<!-- Register the ajax handler -->
<add verb="POST,GET" path="ajax/*.ashx"
type="Ajax.PageHandlerFactory, Ajax" />
</httpHandlers>
...
...
</system.web>
</configuration>
为了使服务器端函数在 JavaScript 中可用,必须做两件事情。首先,要使用的函数必须标有 [b]Ajax.AjaxMethodAttribute[/b]。其次,在页加载事件期间,必须通过调用 Ajax[b].Utility.RegisterTypeForAjax[/b] 来注册包含这些函数的类。听起来似乎有些复杂,但请不必担心;实际上只需要在代码中多加两行。让我们看一个示例。
//C#
public class Sample :System.Web.UI.Page
{
private void Page_Load(object sender, System.EventArgs e)
{
//注册我们感兴趣的包含服务器端函数
//的类
Ajax.Utility.RegisterTypeForAjax(typeof(Sample));
}
[Ajax.AjaxMethod()]
public string GetMessageOfTheDay()
{
return "Experience is the mother of wisdom";
}
}
'VB.NET
Public Class Sample
Inherits System.Web.UI.Page
Private Sub Page_Load(sender AsObject, e As EventArgs)
Handles MyBase.Load
'注册我们感兴趣的包含服务器端函数
'的类
Ajax.Utility.RegisterTypeForAjax(GetType(Sample))
End Sub
<Ajax.AjaxMethod()> _
Public Function GetMessageOfTheDay() As String
Return "Experience is the mother of wisdom"
End Function
End Class
以上示例首先告知 Ajax.NET 在 Sample 类中查找友好的 Ajax 方法。它正好是与实际页相同的类,但是它可以是任意 .NET 类,或可以注册多个类。然后,Ajax.NET 将浏览指定的类,来查找标有 [b]AjaxMethodAttribute[/b] 的所有方法,其中 Sample 类有一个 [b]GetMessageOfTheDay[/b]。 完成后,剩下唯一要做的就是在 JavaScript 中使用它。Ajax.NET 自动创建与注册的类具有相同名称的 JavaScript 变量(在本例中将为 [b]Sample[/b]),它提供与 [b]AjaxMethod[/b] 具有相同名称的函数(在本例中为 [b]GetMessageOfTheDay[/b])。如下所示。
<script language="javascript">
Sample.GetMessageOfTheDay(GetMessageOfTheDay_CallBack);
function GetMessageOfTheDay_CallBack(response)
{
alert(response.value);
}
</script>
除了 JavaScript 回调函数以外,JavaScript [b]GetMessageOfTheDay[/b] 还需要与其服务器端对应部分相同的参数(在此情况下,没有参数),以便在完成时执行并传递响应。在此,我们看到 AJAX 在工作时的异步特性,因为对 [b]GetMessageOfTheDay[/b] 的调用不阻碍执行其他 JavaScript 代码,也不阻碍用户继续在页上进行操作。完成服务器端处理时,Ajax.NET 调用指定的回调函数 [b]GetMessageOfTheDay_CallBack[/b],并向其传递由服务器端返回值组成的响应。 服务器端代码和 JavaScript 代码之间的映射可能有些混乱。图 1 简要显示了服务器端代码和 JavaScript 代码,以及两者之间的映射。
[img]http://www.microsoft.com/china/msdn/library/webservices/asp.net/art/ajaxspiced_fig01.gif[/img] [b]图[/b][b] 1[/b][b]:服务器端代码和[/b][b] JavaScript [/b][b]代码之间的映射[/b]
当然令人感兴趣的 Ajax.NET 还有更多内容值得介绍,例如对 .NET 类型的支持和丰富的回调响应(它不仅仅是值)。以下示例将会重点介绍某些功能,希望帮助您理解 AJAX 如何帮助您创建成功的应用程序。 [b]示例[/b][b] 1[/b][b]:链接的下拉列表[/b] 本文的开始简要地讨论了用于链接两个 [b]DropDownList[/b] 的两种传统方法。当选定的索引更改时,返回页;或者将所有可能的数据加载到 JavaScript 数组并动态显示。希望您可以看到 AJAX 如何替代这两种解决方案。 首先,让我们来看一下我们的数据界面,并从该数据界面驱动示例。我们的数据访问层将提供两种方法:第一种方法将检索系统支持的国家/地区的列表,第二种方法将获取国家/地区 ID 并返回州/省的列表。由于这是纯数据访问,因此我们只需要使用方法。
//C#
public static DataTable GetShippingCountries();
public static DataView GetCountryStates(int countryId);
'VB.NET
Public Shared Function GetShippingCountries() As DataTable
Public Shared Function GetCountryStates(ByVal countryId As Integer)
As DataView
现在,让我们转到相反面,创建简单的 Web 窗体。
<asp:DropDownList ID="countries" Runat="server" />
<asp:DropDownList ID="states" Runat="server" />
<asp:Button ID="submit" Runat="server" Text="Submit" />
Page_Load 事件同样简单,和前述的 Web 窗体一样。我们使用数据访问层来检索可用的国家/地区,并将其绑定到 [b]countriesDropDownList[/b] 中。
//C#
if (!Page.IsPostBack)
{
countries.DataSource = DAL.GetShippingCountries();
countries.DataTextField = "Country";
countries.DataValueField = "Id";
countries.DataBind();
countries.Items.Insert(0, new ListItem("Please Select", "0"));
}
通常,代码到此为止。首先,我们将创建要从 JavaScript 调用的服务器端函数。
'VB.NET
<Ajax.AjaxMethod()> _
Public Function GetStates (ByVal countryId As Integer) As DataView
Return DAL.GetCountryStates(countryId)
End Function
当前1/2页 [b]1[/b][url=http://www.1sucai.cn/article/7937_2.htm]2[/url][url=http://www.1sucai.cn/article/7937_2.htm]下一页[/url][url=http://www.1sucai.cn/article/7937_all.htm]阅读全文[/url]
[b]Tags:[/b][url=http://common.jb51.net/tag/Asp%2ENet/1.htm]Asp.Net[/url] [url=http://common.jb51.net/tag/%E5%92%8C/1.htm]和[/url] [url=http://common.jb51.net/tag/AJAX%2ENet/1.htm]AJAX.Net[/url] [url=http://common.jb51.net/tag/%E7%9A%84%E5%8C%BA%E5%88%AB/1.htm]的区别[/url]
[h1]相关文章[/h1] [list][*]2008-10-10[url=http://www.1sucai.cn/article/16318.htm]AjaxControlToolKit CalendarExtender(日历扩展控件)的使用方法[/url][/*][*]2016-12-12[url=http://www.1sucai.cn/article/100861.htm]详解.net循环、逻辑语句块(基础知识)[/url][/*][*]2006-10-10[url=http://www.1sucai.cn/article/3667.htm]c#中实现文件拖放打开的方法[/url][/*][*]2016-04-04[url=http://www.1sucai.cn/article/82706.htm]ASP.NET中Image控件使用详解[/url][/*][*]2006-12-12[url=http://www.1sucai.cn/article/5190.htm]ASP.NET2.0+SQL Server2005构建多层应用[/url][/*][*]2016-04-04[url=http://www.1sucai.cn/article/83002.htm]ASP.NET中 Wizard 控件的使用方法[/url][/*][*]2010-09-09[url=http://www.1sucai.cn/article/24839.htm]C#控件命名规范[/url][/*][*]2008-10-10[url=http://www.1sucai.cn/article/16317.htm]AjaxControlToolKit DropDownExtender(下拉扩展控件)使用方法[/url][/*][*]2016-04-04[url=http://www.1sucai.cn/article/82962.htm]ASP.NET中 RadioButtonList 单选按钮组控件的使用方法[/url][/*][*]2012-01-01[url=http://www.1sucai.cn/article/29388.htm]asp.net FindControl方法误区和解析[/url][/*][/list]
[url=http://www.1sucai.cn/article/7937.htm#comments][/url]
[h1]最新评论[/h1]
  • 全部评论(0)
联系客服
客服电话:
400-000-3129
微信版

扫一扫进微信版
返回顶部