ASP.NET 4 和 Visual Studio 2010 Web 开发概述 2 - AJAX

1) jQuery 包含在 Web Forms 和 MVC

Visual Studio 对 Web Forms 和 MVC 的模板都包含了开源的 jQuery 库。当创建新网站或项目时,一个包含3个如下文件的 Scripts 文件夹会被创建:

  • jQuery-1.4.1.js —— 人类可读的、未最小化版本的 jQuery 库
  • jQuery-1.4.1.min.js —— 最小化版本的 jQuery 库
  • jQuery-1.4.1-vsdoc.js —— 对 jQuery 库的智能感知文档文件

开发时包含未最小化版本的 jQuery,对产品包含最小化版本的 jQuery。

例如,下面的 Web Forms 页面演示了如何使用 jQuery 更改 TextBox 控件的背景颜色,使其在获得焦点时为×××:

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="ShowjQuery.aspx.cs" Inherits="ShowjQuery" %>
<!
DOCTYPE
html
PUBLIC
"-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"
>
<
html
xmlns
="http://www.w3.org/1999/xhtml"
>
<
head
runat
="server"
>
<
title
>Show jQuery
</
title
>
</
head
>
<
body
>
<
form
id
="form1"
runat
="server"
>
<
div
>
<
asp:TextBox
ID
="txtFirstName"
runat
="server"
/>
<
br
/>
<
asp:TextBox
ID
="txtLastName"
runat
="server"
/>
</
div
>
</
form
>
<
script
src
="Scripts/jquery-1.4.1.js"
type
="text/javascript"
></
script
>
1:
2: <script type=
"text/javascript">
3: $(
"input").focus(
function() { $(
this).css(
"background-color",
"yellow"); });
4:
</
script
>
</
body
>
</
html
>

2) 内容分发网络(CDN)支持

Microsoft Ajax 内容分发网络(Content Delivery Network,CDN)使香锅轻易地添加 ASP.NET Ajax 和 jQuery 脚本到 Web 应用程序中。例如:

<
script
src
="http://ajax.microsoft.com/ajax/jquery/jquery-1.4.2.js"
type
="text/javascript"
></
script
>

利用 Microsoft Ajax CDN,可以提高 Ajax 应用程序的性能。Microsoft Ajax CDN 的内容是缓存在世界各地的服务器上的。另外,Microsoft Ajax CDN 让浏览器能够为定位在不同域中的网站重用缓存的 JavaScript 文件。

Microsoft Ajax CDN 支持 SSL(HTTPS)。

要学习更多关于 Microsoft Ajax CDN的内容,访问:。

ASP.NET ScriptManager 支持 Microsoft Ajax CDN。只要简单地设置 EnableCdn 属性就可以了:

<
asp:ScriptManager
ID
="sm1"
EnableCdn
="true"
runat
="server"
/>

ASP.NET 框架会从 CDN 获取所有的 JavaScript 文件,包括用于验证的和 UpdatePanel 的。

可以为自己的 JavaScript 文件设定 CDN 路径,使用 WebResource 特性就可以实现。例如:

[assembly: WebResource(
"Foo.js",
"application/x-javascript", CdnPath =
"http://foo.com/foo/bar/foo.js")]

3) ScriptManager 显式脚本

过去,如果你使用 ASP.NET ScriptManager 你需要加载整个庞大的 ASP.NET Ajax 库。通过利用新的 ScriptManager.AjaxFrameworkMode 属性,可以精确地控制 ASP.NET Ajax 库的哪些组件要加载,只加载需要的组件。

ScriptManager.AjaxFrameworkMode 属性可以设置为以下的值:

  • Enabled——指示 ScriptManager 控件自动地包含 MicrosoftAjax.js 脚本文件,这是各个核心框架脚本的脚本文件组合(遗留行为)。
  • Disabled——指示所有的 Microsoft Ajax 脚本特性都被禁止,ScriptManager 控件不自动引用任何脚本。
  • Explicit——指示要显式地包含页面需要的单独框架核心脚本文件的引用,以及对脚本文件需要的依赖的引用 。

例如,如果你设置 AjaxFrameworkMode 属性为 Explicit 那么可以指定需要的详细的 ASP.NET Ajax 组件脚本:

<
asp:ScriptManager
ID
="sm1"
AjaxFrameworkMode
="Explicit"
runat
="server"
>
<
Scripts
>
<
asp:ScriptReference
Name
="MicrosoftAjaxCore.js"
/>
<
asp:ScriptReference
Name
="MicrosoftAjaxComponentModel.js"
/>
<
asp:ScriptReference
Name
="MicrosoftAjaxSerialization.js"
/>
<
asp:ScriptReference
Name
="MicrosoftAjaxNetwork.js"
/>
</
Scripts
>
</
asp:ScriptManager
>