解析 AJAX 应用程序的体系结构(11)

http://www.sina.com.cn 2008年06月13日 11:07  新浪科技

  构建用户界面

  AJAX 完全是关于最广泛意义上的用户体验——连贯的感受、无闪烁更新、界面设施、资源聚合、实时数据等等。但您只能利用浏览器和它的一套可编程性功能,主要是浏览器的对象模型、DOM 实现、对 DHTML 扩展的支持、CSS、JavaScript 和插件。

  JavaScript 是构建和操纵 UI 的主要工具。用户界面任务的典型模式要求客户端使用 JavaScript 调用远程服务、接收 JSON 数据或可能是 XML 数据,然后重新整理页面以显示更改。

  如此简单的模型在应用到实际应用程序的规模和复杂性时未必有效。随着 UI 的结构变得日益复杂化,重新整理页面来合并远程调用后新来的数据所带来的问题不可小觑。关键是,一个复杂的 UI 成为问题的临界点在哪里?

  从根本上说,每个实际应用程序(尤其是业务线应用程序)必须依赖三个基本的用户界面功能:布局、数据绑定和样式。除了通过 CSS 支持某些样式外,JavaScript 环境不支持任何这些用户界面功能。此外,在大量的编程常因浏览器的细微错误和粗劣的编程而导致内存问题之类的情况下,JavaScript 还是一种解释性语言。

  考虑一个比较常见的简单情形——对数据网格分页。网格归根到底就是十分复杂的表,浏览器必须为每个请求分析和呈现它。第一次处理页面时,用户很难衡量此呈现操作的成本,因为它已合并到整体页面下载过程中。但是,一旦对新网格页面提出 AJAX 回发请求,更新浏览器窗口的成本就会立即显现。浏览器收到包含对象集合的 JSON 字符串,而且必须将该集合转换成新的表。在客户端必须构建庞大的 HTML 字符串,在一些内存缓冲区中组织文本。如果没有差错,相同的字符串随后还必须以图形方式呈现。

  当完成如此密集的操作后,您会发现响应时间并非如此理想。对于类似上述的情形,要找出有效的解决方案,需要具备中等以上的 JavaScript 和 DHTML 技能。

  一个替代方法是在服务器上预先生成一些标记。这样,远程服务不仅返回数据,而且还合并标记信息。在服务器上,标记是通过已编译的代码来构建的,因此可以更容易地调试和测试它,而且您可以用更强大的编程工具来添加可访问性功能。另一方面,线路上将传输更多的数据(但是请记住,数据量仍远少于常规 ASP.NET 回发)。

  底线就是,无论是从性能还是从开发角度考虑,为了有效地创建切实可行的用户界面,客户端需要更强大的工具。完备的部件和控件库对任何开发人员来说都十分必要。但是,即使经过最完美优化的库对于打破解释性语言(比如 JavaScript)的固有限制也无能为力。也许 Silverlight 最终会向 Web 开发人员提供他们所希望的用于下一代 Web 和 AJAX 应用程序的客户端环境;Silverlight 是一个 Microsoft 跨平台浏览器插件,它结合了 Windows® Presentation Foundation (WPF) 框架的一个子集。但是 Silverlight 是一个外部插件,需要单独下载,而且尚未成熟。1.0 版刚发布不久,若要用它构建真正实用的 Web 应用程序的表示层,还需要一些更高级的功能。

本文导航:
·解析 AJAX 应用程序的体系结构
·前言
·通过 AJAX 登录
·服务的风格
·AJAX 服务返回什么?
·JSON 与 XML 之比较
·安全性考虑
·ASP.NET AJAX 中的服务
·ASP.NET AJAX 服务和 SOAP
·调用 AJAX 服务
·构建用户界面
·这一切意味着什么

发表评论 _COUNT_条
Powered By Google
不支持Flash
·城市对话改革30年 ·新浪城市同心联动 ·诚招合作伙伴 ·企业邮箱畅通无阻
不支持Flash