ASP.NET AJAX(Atlas)和Anthem.NET——管中窺豹般小小比較

Anthem.NET近日有朋友和我提到Anthem.NET這個一樣基於ASP.NET的Ajax框架,今天有機會親自嘗試了一下。初步的感受彷佛和ASP.NET AJAX不相上下,甚至某些地方要強於ASP.NET AJAX。固然,半個小時的嘗試不能算做什麼,這篇文章的不少比較結論可能只是由於個人「無知」形成的,取名「管中窺豹」,其意正在如此。html

Anthem.NET的主頁在這裏,提供了下載文件以及大量的示例程序。同時,博客園的木野狐兄弟也寫了一些很好的關於Anthem.NET的文章,值得咱們學習(但願木野狐兄弟再接再礪啊!)。web

本文將分別用ASP.NET AJAX和Anthem.NET實現一個最最最最簡單的Ajax應用,即:頁面中一個Button一個Label,點擊Button將在服務器端設置Label中的Text,固然,這一切都是以Ajax異步回送的方式進行的。並比較這兩種實現方式的編寫代碼、生成客戶端腳本大小、執行效率等。服務器

 

ASP.NET AJAX程序代碼框架

我想,對於ASP.NET AJAX這部份內容,你們已經很是熟悉了:ScriptManager和UpdatePanel而已:異步

<asp:ScriptManager ID="ScriptManager1" runat="server" />
<div>
    <asp:Button ID="btnSetText" runat="server" Text="Set Text" OnClick="btnSetText_Click" />
    <asp:UpdatePanel ID="up1" runat="server">
        <Triggers>
            <asp:AsyncPostBackTrigger ControlID="btnSetText" EventName="Click" />
        </Triggers>
        <ContentTemplate>
            <asp:Label ID="lbText" runat="server" />
        </ContentTemplate>
    </asp:UpdatePanel>
</div>

服務器端的處理函數也很簡單:ide

protected void btnSetText_Click(object sender, EventArgs e)
{
    lbText.Text = "This text is set on server side.";
}

大功告成!函數

 

Anthem.NET程序代碼post

將Anthem.dll拷貝到Web Site的bin文件夾下,而後在web.config的<configuration>\ <system.web>\ <pages>\ <controls>中添加以下一行,註冊Anthem.NET控件:學習

<add tagPrefix="anthem" namespace="Anthem" assembly="Anthem"/>

Anthem.NET頁面不用添加ScriptManager,而是提供了一套本身就帶有Ajax功能的、繼承於現有ASP.NET控件的服務器端控件。根據上面在web.config文件中的註冊,這部分控件的前綴爲anthem。spa

Anthem.NET程序的頁面顯得很是簡單:

<div>
    <anthem:Button ID="btnSetText" runat="server" Text="Set Text" OnClick="btnSetText_Click" />
    <anthem:Label ID="lbText" runat="server" />
</div>

服務器端的處理函數比ASP.NET AJAX的多出一行,明確指出須要更新Label中的內容(這一句其實與ASP.NET AJAX的UpdatePanel有着殊途同歸之妙):

protected void btnSetText_Click(object sender, EventArgs e)
{
    lbText.Text = "This text is set on server side.";
    lbText.UpdateAfterCallBack = true;
}

彷佛更加簡單!

 

運行結果

兩個示例程序運行結果徹底一致:點擊按鈕將執行一次異步回送,而後Label中將顯示出服務器端設定的文字。

 

ASP.NET AJAX和Anthem.NET實現方式的比較

同樣的功能,可是卻有比較:

 

結論

瞭解還不夠深刻,結論先不下了……上面的數據彷佛能夠說明一些問題,所謂滴水藏海啊! 

 

出處:http://www.cnblogs.com/dflying/archive/2006/11/22/568752.html

相關文章
相關標籤/搜索