Microsoft AJAX CDN(譯文)

  早些時候ASP.NET團隊推出了一個新的微軟Ajax CDN(Content Delivery Network,內容分發網絡)服務,該服務提供了對AJAX庫(包括JQuery和ASP.NET AJAX)的緩存支持。該服務是免費的,不需要任何註冊,可用於商業性或非商業性用途。

  CDN都提供了什麼(What does a CDN provide)?

  內容分發網絡(CDNs)是由戰略性地置放於世界各地關鍵Internet網絡節點的“邊緣緩存(edge cache)”服務器組成的。這些“邊緣緩存(edge cache)”服務器可用於緩存和分發各種類型的內容,包括圖片、視頻、CSS和JavaScript文件。

  使用CDN可以顯著提高一個完整的終端用戶性能,因爲它允許瀏覽器更快地獲取和下載內容。例如,對一個圖片請求,瀏覽器不再需要跨越Internet到你的web服務器下載,一個CDN可以從鄰近的“邊緣緩存(edge cache)”服務器直接提供服務滿足該請求,而該邊緣緩存服務器可能與你的客戶只有一個網絡單跳(single network hop)之遠(使之返回非常之快,也使得你的網頁轉載更快)。

  Microsoft AJAX CDN 提供了什麼(What does the Microsoft AJAX CDN)?

  微軟AJAX CDN極大地方便了將JQuery和ASP.NET AJAX腳本庫加到你的網站上,而且自動地由微軟在世界各地的成千個地理定位(geo-located)的邊緣緩存服務器來提供這些腳本。

  例如,如果你想使用微軟AJAX CDN的JQuery,你只要在網頁中加一個用了下面URL的標準腳本標識:

  <script src="https://ajax.aspnetcdn.com/ajax/jquery/jquery-1.9.0.js"></script>

  在瀏覽器請求該腳本文件時,他會自動地由最靠近終端用戶的CDN的“邊緣緩存(edge cache)”服務器提供。這意味着:

  • 請求處理比之訪問你的web服務器要快很多(使得終端用戶的網頁裝載快很
  • 你不必支付該文件的貸寬花費,因爲該文件來自微軟支付貸寬的服務器(省了你的
  • 腳本可以勤公司能夠的跨站緩存,這意味着,如果用戶剛訪問了一個請求過該文件的網站,name該文件就不再需要下載了(應爲該文件已經存在於瀏覽器的緩存中)

  你可以在www.asp.net/ajax/cdn這裏得到我們已經載入我們的CDN緩存的JavaScript庫(以及相關的URLs)的完整列表。

  在發佈新的ASP.NET AJAX版本時,微軟會更新CDN中的庫,會繼續更新它以包括隨ASP.NET和Visual Studio發佈的所有JavaScript文件(包括。JQuery,JQuery驗證插件,以及將來發布的另外的庫等)。

  CDN服務是免費的,可爲社區中任何人所用,可用於商業性和非商業性用途,且不用註冊即可使用。

  在ASP.NET 4.0 ScriptManager中使用微軟AJAX CDN(Using the Microsoft AJAX CDN with the ASP.NET 4.0 ScriptManager)

  除了允許你直接只<script>元素來引用腳本文件外,ASP.NET 4.0還通過<asp:scriptmanager />服務器控件簡化了在ASP.NET Web Form應用中CDN的使用。

  ASP.NET 4.0 <scp:ScriptManager>控件含有一個名爲“EnableCdn”的新屬性,在你給這個屬性設爲true後,你的應用將自動使用微軟CDN請求JavaScript文件:

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

 

  在你通過ScriptManager啓用CDN後,你的應用中所有的JavaScript文件將通過System.Web.dll或System.Web.Extensions.dll程序集從CDN獲取。這包括ASP.NET AJAX中的JavaScript文件,以及內置的Web Form JavaScript文件(例如,用於客戶端驗證的WebUIValidation.js文件,和爲像TreeView,Menu等控件所用的JavaScript文件)。

  這提供了一個很好的終端用戶性能改進,同時意味着訪問你的ASP.NET網站的用戶不再需要重新下載這些文件,假如他們曾經訪問過另外一個使用了CDN的ASP.NET網站的話。

  使用CDN中的ASP.NET AJAX第五個預覽版(Using ASP.NET AJAX Preview 5 from the CDN)

  除了推出AJAX CDN站點外,ASP.NET 開發團隊還發布了ASP.NET AJAX第五個預覽版。你可以在CodePlex上下載ASP.NET AJAX第五個預覽版(帶有例程代碼)。

  現在,通過添加下列指向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>

  這些腳本標識引用了2009年9月發佈的ASP.NET AJAX庫的beta版本(URL的 /0909/ 部分代表ASP.NET AJAX版本發佈的年和月)。

  在添加引用ASP.NET AJAX庫的腳本標識之後,你可以開始在你的網頁上使用該庫。例如,下面的代碼將代表一組相關的客戶端DataView控件樹依附於網頁主體的一個DIV元素。

  

<script type="text/javascript">
    function pageLoad(){
        var pictures=[
              {url:'Photos/Elephant.jpg',description:'Elephant'},
              {url:'Photos/Lion.jpg',description:'Lion'},
              {url:'Photos/Zebra.jpg',description:'Zebra'},
        ];
                
        $create(
                Sys.UI.DataView,
                {data:pictures}
                null,
                null,
                $get('photos')
        );
    }
</script>
    
該DIV元素,其id爲"photos",包含了一個格式化相片數組中每個相片的模板,相片元素是這麼聲明的:
<div id="photos" class="sys-template"> <div class="photo"> <img sys:src="{{url}}" /> <br />{{description}} </div> </div>

在顯示(render)DataView時,photos DIV元素的內容會爲相片數組中的每一個相片像是(render)一次,其結果是顯示了下列相片:

  因爲ASP.NET AJAX是純JavaScript庫,上面的代碼在ASP.NET Web Forms,ASP.NET MVC,HTML,甚至經典的ASP網頁中都能完全工作,該代碼在所有現代瀏覽器中也都工作。

  你可以在CodePlex上的項目主頁http://aspnet.codeplex.com/Release/ProjectReleases.aspx?ReleaseId=32770上下載例程代碼來了解ASP.NET AJAX第五個預覽版的細節。

  下面是幾個深入探討ASP.NET AJAX第五個預覽版中特性的博客帖子:

  • Microsoft Ajax 4 Preview 5: The DataView Control -- Dave Reed 解釋瞭如何利用第五個預覽版中新加的動態模板和佔位控件(placeholder)特性。
  • ASP.NET Ajax Preview 5 and UpdatePanel – Jim Wang 解釋瞭如何在現有的,使用了標準的ASP.NET UpdatePanel控件的網站中使用第五個預覽版。
  • Building a class browser with Microsoft Ajax 4.0 Preview 5 – Bertrand Le Roy建造了一個非常酷的Ajax類庫瀏覽器應用,該應用利用了第五個預覽版中的若干個新特性,包括遞歸模板(recursive template)。
  • How the DataContext can change your data and your life (well, sort of, but not really) – Jonathan Carter有一個精彩貼子系列,深入探討Ajax DataView 和 DataContext。

  結束語

  微軟Ajax CDN使得你能夠顯著地提高使用了ASP.NET AJAX或jQuery的ASP.NET Web Forms和 ASP.NET MVC 應用的性能。該服務是免費的,不需任何註冊,可以用於商業性和非商業性用途。

  ASP.NET 4.0將特別方便ASP.NET Web Forms開發人員來利用該CDN。通過設置ScriptManager控件的一個屬性,你將能夠把對內置ASP.NET JavaScript文件的所有請求轉向到CDN來獲取,從而提高你的Web Forms應用的性能。

 

  參考文檔

  ScottGu's Blog:https://weblogs.asp.net/scottgu/announcing-the-microsoft-ajax-cdn

  https://msdn.microsoft.com/zh-cn/library/ee517318.aspx

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章