文章出處

最近項目要求,有個類似用戶注冊的唯一性檢 查的功能,雖然寫上了但是交互性不夠,用戶體驗太差。于是開始學習AJAX。剛開始的想法是直接用JSXMLHttpRequest來實現,難度不大。 找了點書再從用AJAX實現注冊功能的網站把注冊網頁源碼COPY下來,很簡單的封裝了下。用的時候發現要改的東西多不是很方便。用ASP.NET AJAX 控件吧Web.config改動實在太大,也不知道會有什么問題,用AJAX.NET又是剛接觸AJAX要快速進入有難度。網上看到ASP.NET AJAX(Atlas)Anthem.NET——管中窺豹般小小比較》,于是下載下來使用。正如網上的評價一樣:輕量、快速。使用非常簡單:

1.將DLL文件添加到Bin目錄中,需要的話把控件加到控件欄以后直接拖動添加。
2.設置Web.config:configuration>\ <system.web>\ <pages>\ <controls>中添加<add tagPrefix="anthem" namespace="Anthem" assembly="Anthem"/>,注冊Anthem.NET控件,一勞永逸。或者在你需要用的頁面中添加注冊<%@ Register TagPrefix="anthem" Namespace="Anthem" Assembly="Anthem" %>。

      環境構建完畢就可以開始使用了。
前臺代碼如下:
   <anthem:TextBox ID="txtTitle" runat="server" Width="250px" TextMode="multiLine" Height="23px" AutoCallBack="true" OnTextChanged="txtTitle_TextChanged"/>
   <anthem:Image  ID="imageIndicator" runat="server" Visible="false"/>
   <asp:RequiredFieldValidator ID="RequiredFieldValidator2" runat="server" ControlToValidate="txtTitle" ErrorMessage="請輸入標題!" Display="dynamic" Width="106px"></asp:RequiredFieldValidator>
   <anthem:Label ID="lblMsg" runat="server" Text="" ForeColor="red"/>

后臺代碼如下:
    protected void txtTitle_TextChanged(object sender, EventArgs e)
    {
        //檢查標題的唯一性
        DocumentUtility du = new DocumentUtility();
        if (du.CheckTitle(txtTitle.Text.Trim()) == true)
        {
            lblMsg.Text = "以此為標題的文檔已存在!";
            lblMsg.UpdateAfterCallBack = true;
            imageIndicator.Visible = true;
            imageIndicator.ImageUrl = "../image/check_error.gif";
            imageIndicator.UpdateAfterCallBack = true;
        }
        else
        {
            lblMsg.Text = "";
            lblMsg.UpdateAfterCallBack = true;
            imageIndicator.Visible = true;
            imageIndicator.ImageUrl = "../image/check_right.gif";
            imageIndicator.UpdateAfterCallBack = true;
        }
    }

我只是把原來的TextBox改為Anthem.NET的TextBox,再加入個指示圖片,可以說極少的修改,非常簡單就實現了無刷新的唯一性檢查。截圖如下:
o_checkError.jpg
o_checkRight.jpg

使用初感:Anthem.Net的學習曲線幾乎為0,馬上就能上手。Anthem.NET不愧是優秀的AJAX框架,雖然固定不容易擴展,但是輕量、快速。

剛剛接觸ASP.NET AJAX沒多久,又看到Dflying Chen這篇文章,立刻動手將原有用ASP.NET AJAX開發的簡單項目移植到Anthem.NET,雖然花了不少時間,但出來的效果絕對是喜人的!頁面的執行效率從肉眼就能明顯感覺有不少的提升,正如Dflying Chen所說Anthem.NET是ASP.NET AJAX的輕量級實現,甚至可以說是完美的輕量級實現。而在實踐之后得出Anthem.NET相比ASP.NET AJAX的優勢:

1.性能優勢非常明顯,在原有項目asp.net ajax結構中所用到的Microsoft.Web.Extensions.dll及Microsoft.Web.Preview.dll分別是646KB和898KB,而移植到Anthem.NET所用到的Anthem.dll僅僅120KB。換言而之,Anthem.NET的代碼量僅僅是asp.net ajax的12分之一。無疑Anthem.NET代碼的簡潔換來的是AJAX執行效率的高效及頁面性能的提升。可以說,Anthem.NET相比asp.net ajax最大的優勢及吸引人的亮點就是性能方面的優勢!

2.感覺Anthem.NET每一個控件單獨設置異步回調的AJAX方式比asp.net ajax的updatepanel局部頁面刷新實現的異步回調的AJAX方式更加合理化及細致化一點。

3.Anthem.NET代碼的簡潔使腳本的出錯機率大大降低,原來項目用asp.net ajax時頻繁點擊頁面有時會出現腳本的錯誤,在Anthem.NET中就不再存在了。

當然相比ASP.NET AJAX的不足也是顯然易見的:

1.從原有項目移植到AJAX框架的便捷性來說asp.net ajax無疑更具優勢,從普通框架的項目移植到AJAX框架,使用asp.net ajax只需將原有頁面的所有東西嵌套到Updatepanel之內即可簡單實現AJAX,但Anthem.NET卻需要一個個地修改原有控件及增加相關屬性,如遇到控件比較多的項目就需要花上大量的時間。

2.從技術文檔及相關資源來說asp.net ajax絕對占據優勢,從長遠的開發前景來說,擁有微軟官方支持的asp.net ajax比個人開源項目的Anthem.NET來說更容易普及開來。

3.asp.net ajax能開發更加復雜的Ajax應用,從各自相關例子就能看出,asp.net ajax能實現更為復雜的應用,畢竟Anthem.NET代碼量僅僅是asp.net ajax的12分之一,不可以兼顧那么多的應用。不過從Anthem.NET提供的例子也可以看出,基本上實際開發所需要到的應用Anthem.NET都已經提供了。畢竟實際開發中我們并不需要太多的復雜應用,所以Anthem.Net還是不錯的。

個人感覺從Asp.NET執行性能上來講Anthem.NET>Ajax.net>Asp.net ajax,從ASP.NET適用性來講ASP.NET AJAX>Anthem.NET>Ajax.net。


不含病毒。www.avast.com
arrow
arrow
    全站熱搜
    創作者介紹
    創作者 AutoPoster 的頭像
    AutoPoster

    互聯網 - 大數據

    AutoPoster 發表在 痞客邦 留言(0) 人氣()