首页 新闻 论坛 群组 Blog 文档 下载 读书 Tag 网摘 搜索 开源 FAQ 第二书店 博文视点 程序员
频道: 研发 数据库 中间件 信息化 视频 .NET Java 游戏 移动 服务: 人才 外包 培训
    图书品种:235680
       
热门搜索: ASP.NET Ajax Spring Hibernate Java

传统的Ajax应用程序使用HTML以及其相关技术,例如DHTMLCSS来创建用户界面。当界面需要动态改变时,应用程序通过XMLHTTPRequest调用服务器,然后服务器将新的界面样式发送回客户端,浏览器再将其插入到DOM中并呈现。

例如,考虑下面的情况:使用Ajax技术实现一个金融网站(在第11章中会有完整的示例程序)。当用户改变要查看的公司时,页面中的一些部分需要用新的内容更新。图2-6显示了这个应用程序的雏形,包含一个基本的报价和几张图表。考虑如下场景:用户将选择他是否要查看这家公司更详细的报价信息。如果是,那么单击一个按钮来得到这些信息。你希望这些信息显示在同一个页面上,但不希望整个页面被刷新——仅仅是希望这些信息出现而已(参见图2-7)。如果不使用Ajax技术,哪怕网络往返行程再短,在呈现新数据时页面也会闪烁一次。浏览器将会清空并重绘整个页面,虽然页面上的大部分内容都不需要改变。

2-6  正在加载详细报价信息

2-7  无页面闪烁地呈现详细报价信息

上述方案带来的问题,一部分是由于该方案没有将表现与业务逻辑清晰的分开而造成的。服务器在管理业户逻辑的同时也管理着UI,而表现层却仅仅简单地负责将服务器分派的内容显示出来。当然,服务器完全可以只发送文本,而不发送界面样式,但这又需要一个JavaScript程序解析该文本并由此生成UI。与完全在服务器端生成UI相比,这种方式往往会更加费力,因为在服务器端开发中,可以充分借助强大的Visual Studio以及C#VB.NET(当然,还可以使用JavaJavaIDE)以提高开发效率。

Atlas的模型中,数据位于服务器端,这也是属于它的位置,而界面样式等表示层代码在第一次呈现后就一直位于客户端。运行于浏览器中的组件和控件将接管所有的呈现任务。从较高的层次来看,运行于浏览器中的组件和控件分为如下两大类别:

q  组件component):组件类似于积木,是一类可以以声明或编程方式创建的可重用的模块。组件控制着自己的生存周期,组件之间也能很容易地通过绑定或事件彼此连接起来。

q  控件control):控件是一类与DHTML元素相关联的用户界面元素。控件管理并控制该元素的所有呈现任务。

关于AtlasWeb UI,在第7章中会有非常详细的介绍。

查看所有评论(0)条】

最近评论



正在载入评论列表...
热点评论