微軟AJAX CDN功能簡介 免費(fèi)AJAX緩存支持
微軟前日推出了一個(gè)新的AJAX工具:AJAX CDN。這個(gè)工具由微軟的ASP.NET小組推出,用于AJAX緩存支持。想了解AJAX CDN的一些細(xì)節(jié)?那就看看Scott Gu對其做的介紹吧。
今天早些時(shí)候,ASP.NET開發(fā)團(tuán)隊(duì)推出了一個(gè)新的微軟Ajax CDN(Content Delivery Network,內(nèi)容分發(fā)網(wǎng)絡(luò))服務(wù),該服務(wù)提供了對AJAX庫(包括jQuery 和 ASP.NET AJAX)的緩存支持。該服務(wù)是免費(fèi)的,不需任何注冊,可用于商業(yè)性或非商業(yè)性用途。
CDN都提供什么?
內(nèi)容分發(fā)網(wǎng)絡(luò)(CDNs)是由戰(zhàn)略性地置放于世界各地關(guān)鍵Internet網(wǎng)絡(luò)點(diǎn)的“邊緣緩存(edge cache)”服務(wù)器組成的。這些“邊緣緩存(edge cache)”服務(wù)器可用于緩存和分發(fā)各種類型的內(nèi)容,包括圖片,視頻,CSS和JavaScript文件。
使用CDN可以顯著提高一個(gè)網(wǎng)站的終端用戶性能,因?yàn)樗试S瀏覽器更快地獲取和下載內(nèi)容。例如,對一個(gè)圖片請求,瀏覽器不再需要跨越Internet到你的web服務(wù)器下載,一個(gè)CDN可以從鄰近的“邊緣緩存(edge cache)”服務(wù)器直接提供服務(wù)滿足該請求,而該邊緣緩存服務(wù)器可能與你的客戶只有一個(gè)網(wǎng)絡(luò)單跳(single network hop)之遠(yuǎn)(使之返回非常之快,也使得你的網(wǎng)頁裝載更快)。
微軟AJAX CDN都提供什么?
微軟AJAX CDN極大地方便了將jQuery和ASP.NET AJAX腳本庫加到你的網(wǎng)站上,而且自動(dòng)地由我們在世界各地的成千個(gè)地理定位(geo-located)的邊緣緩存服務(wù)器來提供這些腳本。
例如,如果你想要使用微軟AJAX CDN的jQuery,你只要在網(wǎng)頁中加一個(gè)用了下面URL的標(biāo)準(zhǔn)的腳本標(biāo)識:
- <script src="http://ajax.microsoft.com/ajax/jquery/jquery-1.3.2.min.js" type="text/javascript"></script>
在瀏覽器請求該腳本文件時(shí),它就會(huì)自動(dòng)地由最靠近終端用戶的CDN的“邊緣緩存(edge cache)”服務(wù)器提供。這意味著:
- 請求處理比之訪問你的web服務(wù)器要快很多(使得終端用戶的網(wǎng)頁裝載快很多)
- 你不必支付該文件的帶寬花費(fèi),因?yàn)樵撐募碜杂晌覀冎Ц稁挼姆?wù)器(給你省了錢)
- 腳本可以輕松地跨站緩存,這意味著,如果用戶剛訪問了一個(gè)請求過該文件的網(wǎng)站,那么該文件就不再需要下載了(因?yàn)樵撐募呀?jīng)存在于瀏覽器的緩存中了)
你可以在www.asp.net/ajax/cdn這里得到我們已經(jīng)載入我們的CDN緩存的JavaScript庫(以及相關(guān)的URLs)的完整列表。
在發(fā)布新的ASP.NET AJAX版本時(shí),我們會(huì)更新CDN中的庫,會(huì)繼續(xù)更新它以包括隨ASP.NET和Visual Studio發(fā)布的所有 JavaScript文件(包括jQuery, jQuery 驗(yàn)證插件,以及將來發(fā)布的另外的庫等)。
CDN服務(wù)是免費(fèi)的,可為社區(qū)中任何人所用,可用于商業(yè)性和非商業(yè)性用途。你不必注冊來利用它。
在ASP.NET 4.0 ScriptManager中使用微軟AJAX CDN
除了允許你直接使用<script>元素來引用腳本文件外,ASP.NET 4.0還簡化了從用了<asp:scriptmanager/>服務(wù)器控件的ASP.NET Web Forms應(yīng)用中CDN的使用。
ASP.NET 4.0 <asp:ScriptManager>控件含有一個(gè)名為“EnableCdn”的新屬性,在你給這個(gè)屬性賦予true值后,你的應(yīng)用將自動(dòng)使用微軟CDN請求JavaScript文件:
在你通過ScriptManager啟用CDN后,你的應(yīng)用將從CDN獲取通常是從System.Web.dll 或 System.Web.Extensions.dll程序集中獲取的所有JavaScript文件。這包括ASP.NET AJAX中的JavaScript文件,以及內(nèi)置的Web Forms JavaScript文件(例如,用于客戶端驗(yàn)證的WebUIValidation.js文件,和為象TreeView, Menu等控件所用的JavaScript文件)。
這提供了一個(gè)很好的終端用戶性能改進(jìn),同時(shí)意味著訪問你的ASP.NET網(wǎng)站的用戶不再需要重新下載這些文件,假如他們曾經(jīng)訪問過另一個(gè)使用了CDN的ASP.NET網(wǎng)站的話。
使用CDN中的ASP.NET AJAX第五個(gè)預(yù)覽版
除了推出 AJAX CDN 站外,ASP.NET開發(fā)團(tuán)隊(duì)最近還發(fā)布了ASP.NET AJAX第五個(gè)預(yù)覽版。你可以在CodePlex上http://aspnet.codeplex.com/Release/ProjectReleases.aspx?ReleaseId=32770下載ASP.NET AJAX第五個(gè)預(yù)覽版(帶有例程代碼)。
現(xiàn)在,通過添加下列指向CDN的腳本,你就可以使用ASP.NET AJAX 庫:
- <script src="http://ajax.microsoft.com/ajax/beta/0909/MicrosoftAjax.js" type="text/javascript"></script>
- <script src="http://ajax.microsoft.com/ajax/beta/0909/MicrosoftAjaxTemplates.js" type="text/javascript"></script>
這些腳本標(biāo)識引用了2009年9月發(fā)布的ASP.NET AJAX庫的beta版(URL的/0909/部分代表ASP.NET AJAX版本發(fā)布的年和月)。
在添加引用ASP.NET AJAX庫的腳本標(biāo)識之后,你可以開始在你的網(wǎng)頁上使用該庫。例如,下面的代碼將代表一組相片的客戶端DataView控件依附于網(wǎng)頁主體的一個(gè)DIV元素。
該DIV元素,其id為 "photos", 包含了一個(gè)格式化相片數(shù)組中每個(gè)相片的模板,相片元素是這么聲明的:
在顯示(render)DataView時(shí),photos DIV元素的內(nèi)容會(huì)為相片數(shù)組中的每一個(gè)相片都顯示(render)一次, 其結(jié)果是顯示了下列相片:
因?yàn)锳SP.NET AJAX是純JavaScript庫,上面的代碼在ASP.NET Web Forms, ASP.NET MVC, HTML, 甚至經(jīng)典的 ASP網(wǎng)頁中都能完全工作,該代碼在所有現(xiàn)代瀏覽器中也都工作。
你可以在CodePlex上的項(xiàng)目主頁上下載例程代碼來了解ASP.NET AJAX第五個(gè)預(yù)覽版的細(xì)節(jié)。
下面是幾個(gè)深入探討ASP.NET AJAX第五個(gè)預(yù)覽版中特性的博客貼子:
- Microsoft Ajax 4 Preview 5: The DataView Control -- Dave Reed 解釋了如何利用第五個(gè)預(yù)覽版中新加的動(dòng)態(tài)模板和占位控件(placeholder)特性。
- ASP.NET Ajax Preview 5 and UpdatePanel – Jim Wang 解釋了如何在現(xiàn)有的,使用了標(biāo)準(zhǔn)的ASP.NET UpdatePanel控件的網(wǎng)站中使用第五個(gè)預(yù)覽版。
- Building a class browser with Microsoft Ajax 4.0 Preview 5 – Bertrand Le Roy建造了一個(gè)非??岬腁jax類庫瀏覽器應(yīng)用,該應(yīng)用利用了第五個(gè)預(yù)覽版中的若干個(gè)新特性,包括遞歸模板(recursive template)。
- How the DataContext can change your data and your life (well, sort of, but not really) – Jonathan Carter有一個(gè)精彩貼子系列,深入探討Ajax DataView 和 DataContext。
結(jié)束語
微軟Ajax CDN使得你能夠顯著地提高使用了ASP.NET AJAX或jQuery的ASP.NET Web Forms和 ASP.NET MVC 應(yīng)用的性能。該服務(wù)是免費(fèi)的,不需任何注冊,可以用于商業(yè)性和非商業(yè)性用途。
ASP.NET 4.0將特別方便ASP.NET Web Forms開發(fā)人員來利用該CDN。通過設(shè)置ScriptManager控件的一個(gè)屬性,你將能夠把對內(nèi)置ASP.NET JavaScript文件的所有請求轉(zhuǎn)向到CDN來獲取,從而提高你的Web Forms應(yīng)用的性能。
【編輯推薦】