Welcome

首页 / 脚本样式 / Dojo Toolkit / 利用Dojo Data开发统一的数据访问模型

利用Dojo Data开发统一的数据访问模型2011-02-08 IBM 胡旷 张德才 王存玮目前,企业内部的数据量正快速膨胀,客户端和服务器端之间交换的数据格式也是多种多样。由于 Web2.0、RIA 的快速发展,在客户端处理数据逐渐成为一种趋势,但是基于 XMLHTTPRequest 的一般 Ajax 客户端程序必须由 Web 开发人员自己编写处理各种数据格式的代码。这样,不仅加重了客户端逻辑的复杂性,而且降低了程序的可维护性和可扩展性。而 Dojo Data 库旨在为不同的数据格式提供一种统一的数据访问模型,使得数据的读写都采用统一的接口,从而有利于程序的移植和维护。通过阅读本文读者能够了解 Dojo Data 库的工作原理以及能够使用 Dojo 提供的存储库来进行统一的数据模型应用开发。

概述

与传统模式相比,面向服务的互联网应用提供一种更加快速,方便的方式来发布、处理信息。其分布式及松耦合的特性也受到越来越多企业的青睐。随着企业的发展,应用程序的数据量往往呈几何级规模快速膨胀,客户端和服务器端之间交换的数据格式也是多种多样,常见的比如有 JSON,XML 等。伴随 Web2.0、RIA 的发展,在客户端处理数据逐渐成为一种趋势,但是基于 XMLHTTPRequest 的一般 Ajax 客户端程序必须由 Web 开发人员自己编写处理各种数据格式的代码。这样,不仅加重了客户端逻辑的复杂性,而且降低了程序的可维护性和可扩展性。而 Dojo Data 库旨在为不同的数据格式提供一种统一的数据访问模型,使得数据的读写都采用统一的接口,从而有利于程序的移植和维护。

本文将介绍 Dojo Data 库的工作原理,及常用的 API,并结合一个具体的应用场景,介绍如何使用 Dojo Data 库提供的 dojo.data.ItemFileReadStore 和 dojox.data.XmlStore 存储库来实现 Web 客户端数据的获取、分页、排序、过滤查找等功能,最后简要介绍了 Dojo Data 库的 Write API。

Dojo Data 工作原理

在富客户端应用程序中,客户端和服务器端交换的数据格式多种多样(比如 JSON,XML 等),因此,一个基于客户端的统一数据访问层成为富客户端应用程序的基础。Dojo 提供了许多存储库来访问不同格式的数据,如 dojo.data.ItemFileReadStore(用来读取 JSON 文件),dojox.data.XmlStore,dojox.data.AtomReadStore,dojox.data.CsvStore,和 dojox.data.OpmlStore 等。Dojo Data 的目标是为不同的客户端应用或 widget 等提供一个统一的数据访问接口,以达到互操作性的目的,而各种客户端应用不需要了解各种诸如 JSON、XML、CSV 等数据的具体格式,通过统一的访问接口就能轻松的访问和操作数据。简单的说,我们可以把 Dojo.Data 理解为位于 dojo.xhrGet() 之上的数据解析层。与之不同的是,Dojo.xhrGet() 只负责异步的读取数据,而 Dojo Data 还要将具体的数据解析成通用的数据访问模型(数据项及其属性)。如下图所示:

图 1.Dojo Data 结构图