zoukankan      html  css  js  c++  java
  • ASP.NET AJAX(Atlas)和Anthem.NET——管中窥豹般小小比较

    Anthem.NET近日有朋友和我提到Anthem.NET这个同样基于ASP.NET的Ajax框架,今天有机会亲自尝试了一下。初步的感觉似乎和ASP.NET AJAX不相上下,甚至某些地方要强于ASP.NET AJAX。当然,半个小时的尝试不能算作什么,这篇文章的很多比较结论可能只是因为我的“无知”造成的,取名“管中窥豹”,其意正在如此。

    Anthem.NET的主页在这里,提供了下载文件以及大量的示例程序。同时,博客园的木野狐兄弟也写了一些很好的关于Anthem.NET的文章,值得我们学习(希望木野狐兄弟再接再厉啊!)。

    本文将分别用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>

    服务器端的处理函数也很简单:

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

    大功告成!

    Anthem.NET程序代码

    将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。

    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

  • 相关阅读:
    读书笔记 effective c++ Item 32 确保public继承建立“is-a”模型
    读书笔记 effective c++ Item 31 把文件之间的编译依赖降到最低
    读书笔记 effective c++ Item 30 理解内联的里里外外 (大师入场啦)
    程序猿开发语言投票
    读书笔记 effective c++ Item 29 为异常安全的代码而努力
    读书笔记 effective c++ Item 28 不要返回指向对象内部数据(internals)的句柄(handles)
    C++ 11和C++98相比有哪些新特性
    读书笔记 effective c++ Item 27 尽量少使用转型(casting)
    如何一步一步用DDD设计一个电商网站(七)—— 实现售价上下文
    如何一步一步用DDD设计一个电商网站(六)—— 给购物车加点料,集成售价上下文
  • 原文地址:https://www.cnblogs.com/mq0036/p/5014121.html
Copyright © 2011-2022 走看看