诛仙手游70真仙10属性:深入了解Dojo Data - Dojo中文博客 - CSDN博客
来源:百度文库 编辑:九乡新闻网 时间:2024/05/13 17:00:50
深入了解Dojo Data 收藏
深入了解Dojo Data
——译自http://www.sitepen.com/blog/2010/10/13/dive-into-dojo-data/使用Dojo Data有助于快速创建Web应用的界面,且易于嵌入各种数据源。它在用户界面与底层数据之间提供了一层抽象层,使得用户界面开发人员能够专注于UI的开发,而无需担心数据库、服务器、或者数据格式的唯一性。在接下来的例子里,我们将用一个JsonRestStore为DataGrid提供数据。然后,我们将用一个XmlStore替换这个JsonRestStore,以显示UI和数据源的解耦所带来的便利。数据以JSON的方式表示:view plaincopy to clipboardprint?
01.dataItems = [
02. { "id": "AF", "name":"Africa", "type":"continent",
03. "population":"900 million", "area": "30,221,532 sq km" },
04. { "id": "AS", "name":"Asia", "type":"continent",
05. "population":"1 billion", "area": "25,428,192 sq km" },
06. { "id": "OC", "name":"Oceania", "type":"continent",
07. "population":"21 million", "area": "15,928,294 sq km" },
08. { "id": "EU", "name":"Europe", "type":"continent",
09. "population":"56 million", "area": "25,928,294 sq km" },
10. { "id": "NA", "name":"North America", "type":"continent",
11. "population":"100 million", "area": "90,928,294 sq km" },
12. { "id": "SA", "name":"South America", "type":"continent",
13. "population":"102 million", "area": "78,928,294 sq km" },
14. { "id": "AN", "name":"Antarctica", "type":"continent",
15. "population":"998", "area": "102,928,294 sq km" }
16.];
dataItems = [
{ "id": "AF", "name":"Africa", "type":"continent",
"population":"900 million", "area": "30,221,532 sq km" },
{ "id": "AS", "name":"Asia", "type":"continent",
"population":"1 billion", "area": "25,428,192 sq km" },
{ "id": "OC", "name":"Oceania", "type":"continent",
"population":"21 million", "area": "15,928,294 sq km" },
{ "id": "EU", "name":"Europe", "type":"continent",
"population":"56 million", "area": "25,928,294 sq km" },
{ "id": "NA", "name":"North America", "type":"continent",
"population":"100 million", "area": "90,928,294 sq km" },
{ "id": "SA", "name":"South America", "type":"continent",
"population":"102 million", "area": "78,928,294 sq km" },
{ "id": "AN", "name":"Antarctica", "type":"continent",
"population":"998", "area": "102,928,294 sq km" }
];
小提示:可以到jsonlint.org 验证JSON格式的正确性。JsonRestStore需要与一个数据服务相连。本例中我们只创建一个模拟服务。注意为了简单起见,我们将省略"query"这个参数,返回所有的数据项。view plaincopy to clipboardprint?
01.var mockService = function(query){
02. var d = new dojo.Deferred();
03. d.fullLength = dataItems.length;
04. d.callback(dataItems);
05. return d;
06.};
var mockService = function(query){
var d = new dojo.Deferred();
d.fullLength = dataItems.length;
d.callback(dataItems);
return d;
};下一步,我们用一个服务函数和一个目标URL来创建JsonRestStore。同样,对于这个例子而言我们将省略"target"参数。这个残水对于今后开发真正的REST服务非常重要,但现在暂时不需要。view plaincopy to clipboardprint?
01.jsonStore = new dojox.data.JsonRestStore({
02. service: mockService,
03. target: ‘/some/url’
04.});
jsonStore = new dojox.data.JsonRestStore({
service: mockService,
target: ‘/some/url’
}); JsonRestStore适用于比较大型的数据集。对于这种数据集,你往往不想(或根本不可能)高效地将其完全传送到客户端。JsonRestStore能够很好地处理与服务器端的交互。最后,我们来声明一个dojox.grid.DataGrid。我们将用它显示数据。view plaincopy to clipboardprint?
01.
同样的JsonRestStore也能够同时为一个dijit.form.ComboBox提供数据:view plaincopy to clipboardprint?
01.
看,把同一份数据用于不同的UI小部件就是这么简单!接下来,我们用一个XmlStore来换下这个JsonRestStore,看看转换数据格式有多简单。数据文件如下:view plaincopy to clipboardprint?
01.
02.
03.Africa
04.900 million
05. 30,221,532 sq km
06.
07.
08.Asia
09.1 billion
10. 25,428,192 sq km
11.
12.
13.Oceania
14.21 million
15. 15,928,294 sq km
16.
17.
18.Europe
19.56 million
20. 25,928,294 sq km
21.
22.
23.North America
24.100 million
25. 90,928,294 sq km
26.
27.
28.South America
29.102 million
30. 78,928,294 sq km
31.
32.
33.Antarctica
34.998
35. 102,928,294 sq km
36.
37.
Africa
900 million
30,221,532 sq km
Asia
1 billion
25,428,192 sq km
Oceania
21 million
15,928,294 sq km
Europe
56 million
25,928,294 sq km
North America
100 million
90,928,294 sq km
South America
102 million
78,928,294 sq km
Antarctica
998
102,928,294 sq km
然后,创建XML数据存储器:view plaincopy to clipboardprint?
01.xmlStore = new dojox.data.XmlStore({
02. url: ‘continents.xml’,
03. label: ‘name’
04.});
xmlStore = new dojox.data.XmlStore({
url: ‘continents.xml’,
label: ‘name’
});XmlStore是一个客户端的数据存储器,用于读取XML数据源。它由Dojo官方提供并包含在DojoX子项目中。XmlStore为基本的XML数据(一种常用的数据交换格式)提供读/写接口。XmlStore可以用于一般的XML文档,因此非常有用。存储器的设计是你可以通过覆盖其部分方法来自定义读/写数据的行为。最后,将它交给DataGrid。view plaincopy to clipboardprint?
01.
同时,更新ComboBox:view plaincopy to clipboardprint?
01.
我们不需要修改关于Grid和ComboBox的任何代码,就能让它们继续工作。唯一需要做的改动,就是声明一个数据源,并将它设置为grid的输入。我们不需要操心任何关于数据获取、解析、以及管理的事情,数据存储器的API做了所有的工作!除此之外还有其他许多有用的数据存储器,包括CsvStore,FileStore,FlickrStore,JsonQueryRestStore,PersevereStore,ServiceStore,WikipediaStore,等等。如果需要一个完整列表,请参见dojox.data目录Dojo Data是一个强大而灵活的工具。数据存储器使得切换前端组件和后端实现都变得很容易,不需要改变许多代码。因此我们可以为同一个数据存储器很方便地更换前端Diji部件,另外,同一个数据存储器也能由页面上的多个Dijit部件、图表或grid同时使用。更多相关资源:•RESTful JSON + Dojo Data
•Easy Exploration of Dojo Data Stores
•Web Service to dojo.data Store in 4 Easy Steps
发表于 @ 2010年11月08日 20:16:00 | 评论( 0 ) | 编辑| 举报| 收藏 旧一篇:部分Dojo常用函数简介(五)——事件处理以及Ajax I/O函数扩展 | 新一篇:JavaScript 开发测试工具概览
查看最新精华文章 请访问博客首页相关文章发表评论表 情: 评论内容: 用 户 名:登录 注册 匿名评论 匿名用户验 证 码: 重新获得验证码
热门招聘职位荷兰互联网公司诚聘Web(Rails)开发工程师【重庆大龙网】高薪诚聘中高级软件工程师美资高薪诚聘软件开发及数据库人才【新迪数字】高薪诚聘JAVA项目软件架构师、JAVA项目主管!!【尚品网】诚招软件开发工程师【UniQlick】【8K-12K】急招Java工程师、技术工程师、数据分析师【 CSDN】高薪诚聘:java、运营、就业、商务策划经理、网站编辑!【武汉亨通科技】高薪诚聘项目经理、高级软件工程师,邀您加盟!【careerfocus】科锐福克斯猎头公司强悍猎聘IT人才!【沃尔玛中国】信息系统部急聘IT英才(上海,深圳)!!!【融资城】投融资平台高薪诚聘技术总监、产品经理等【搜狐公司】海量技术职位火热招聘中!荷兰互联网公司诚聘Web(Rails)开发工程师【重庆大龙网】高薪诚聘中高级软件工程师美资高薪诚聘软件开发及数据库人才【新迪数字】高薪诚聘JAVA项目软件架构师、JAVA项目主管!!【尚品网】诚招软件开发工程师【UniQlick】【8K-12K】急招Java工程师、技术工程师、数据分析师【 CSDN】高薪诚聘:java、运营、就业、商务策划经理、网站编辑!【武汉亨通科技】高薪诚聘项目经理、高级软件工程师,邀您加盟!【careerfocus】科锐福克斯猎头公司强悍猎聘IT人才!【沃尔玛中国】信息系统部急聘IT英才(上海,深圳)!!!【融资城】投融资平台高薪诚聘技术总监、产品经理等【搜狐公司】海量技术职位火热招聘中! 公司简介|招贤纳士|广告服务|银行汇款帐号|联系方式|版权声明|法律顾问|问题报告
北京创新乐知信息技术有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
江苏乐知网络技术有限公司 提供商务支持
Email:webmaster@csdn.net
Copyright © 1999-2010, CSDN.NET, All Rights Reserved
本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/dojotoolkit/archive/2010/11/08/5996121.aspx
深入了解Dojo Data
——译自http://www.sitepen.com/blog/2010/10/13/dive-into-dojo-data/使用Dojo Data有助于快速创建Web应用的界面,且易于嵌入各种数据源。它在用户界面与底层数据之间提供了一层抽象层,使得用户界面开发人员能够专注于UI的开发,而无需担心数据库、服务器、或者数据格式的唯一性。在接下来的例子里,我们将用一个JsonRestStore为DataGrid提供数据。然后,我们将用一个XmlStore替换这个JsonRestStore,以显示UI和数据源的解耦所带来的便利。数据以JSON的方式表示:view plaincopy to clipboardprint?
01.dataItems = [
02. { "id": "AF", "name":"Africa", "type":"continent",
03. "population":"900 million", "area": "30,221,532 sq km" },
04. { "id": "AS", "name":"Asia", "type":"continent",
05. "population":"1 billion", "area": "25,428,192 sq km" },
06. { "id": "OC", "name":"Oceania", "type":"continent",
07. "population":"21 million", "area": "15,928,294 sq km" },
08. { "id": "EU", "name":"Europe", "type":"continent",
09. "population":"56 million", "area": "25,928,294 sq km" },
10. { "id": "NA", "name":"North America", "type":"continent",
11. "population":"100 million", "area": "90,928,294 sq km" },
12. { "id": "SA", "name":"South America", "type":"continent",
13. "population":"102 million", "area": "78,928,294 sq km" },
14. { "id": "AN", "name":"Antarctica", "type":"continent",
15. "population":"998", "area": "102,928,294 sq km" }
16.];
dataItems = [
{ "id": "AF", "name":"Africa", "type":"continent",
"population":"900 million", "area": "30,221,532 sq km" },
{ "id": "AS", "name":"Asia", "type":"continent",
"population":"1 billion", "area": "25,428,192 sq km" },
{ "id": "OC", "name":"Oceania", "type":"continent",
"population":"21 million", "area": "15,928,294 sq km" },
{ "id": "EU", "name":"Europe", "type":"continent",
"population":"56 million", "area": "25,928,294 sq km" },
{ "id": "NA", "name":"North America", "type":"continent",
"population":"100 million", "area": "90,928,294 sq km" },
{ "id": "SA", "name":"South America", "type":"continent",
"population":"102 million", "area": "78,928,294 sq km" },
{ "id": "AN", "name":"Antarctica", "type":"continent",
"population":"998", "area": "102,928,294 sq km" }
];
小提示:可以到jsonlint.org 验证JSON格式的正确性。JsonRestStore需要与一个数据服务相连。本例中我们只创建一个模拟服务。注意为了简单起见,我们将省略"query"这个参数,返回所有的数据项。view plaincopy to clipboardprint?
01.var mockService = function(query){
02. var d = new dojo.Deferred();
03. d.fullLength = dataItems.length;
04. d.callback(dataItems);
05. return d;
06.};
var mockService = function(query){
var d = new dojo.Deferred();
d.fullLength = dataItems.length;
d.callback(dataItems);
return d;
};下一步,我们用一个服务函数和一个目标URL来创建JsonRestStore。同样,对于这个例子而言我们将省略"target"参数。这个残水对于今后开发真正的REST服务非常重要,但现在暂时不需要。view plaincopy to clipboardprint?
01.jsonStore = new dojox.data.JsonRestStore({
02. service: mockService,
03. target: ‘/some/url’
04.});
jsonStore = new dojox.data.JsonRestStore({
service: mockService,
target: ‘/some/url’
}); JsonRestStore适用于比较大型的数据集。对于这种数据集,你往往不想(或根本不可能)高效地将其完全传送到客户端。JsonRestStore能够很好地处理与服务器端的交互。最后,我们来声明一个dojox.grid.DataGrid。我们将用它显示数据。view plaincopy to clipboardprint?
01.
Name | Population | Area |
---|
Name | Population | Area |
---|
同样的JsonRestStore也能够同时为一个dijit.form.ComboBox提供数据:view plaincopy to clipboardprint?
01.
看,把同一份数据用于不同的UI小部件就是这么简单!接下来,我们用一个XmlStore来换下这个JsonRestStore,看看转换数据格式有多简单。数据文件如下:view plaincopy to clipboardprint?
01.
02.
03.
04.
05. 30,221,532 sq km
06.
07.
08.
09.
10. 25,428,192 sq km
11.
12.
13.
14.
15. 15,928,294 sq km
16.
17.
18.
19.
20. 25,928,294 sq km
21.
22.
23.
24.
25. 90,928,294 sq km
26.
27.
28.
29.
30. 78,928,294 sq km
31.
32.
33.
34.
35. 102,928,294 sq km
36.
37.
30,221,532 sq km
25,428,192 sq km
15,928,294 sq km
25,928,294 sq km
90,928,294 sq km
78,928,294 sq km
102,928,294 sq km
01.xmlStore = new dojox.data.XmlStore({
02. url: ‘continents.xml’,
03. label: ‘name’
04.});
xmlStore = new dojox.data.XmlStore({
url: ‘continents.xml’,
label: ‘name’
});XmlStore是一个客户端的数据存储器,用于读取XML数据源。它由Dojo官方提供并包含在DojoX子项目中。XmlStore为基本的XML数据(一种常用的数据交换格式)提供读/写接口。XmlStore可以用于一般的XML文档,因此非常有用。存储器的设计是你可以通过覆盖其部分方法来自定义读/写数据的行为。最后,将它交给DataGrid。view plaincopy to clipboardprint?
01.
Name | Population | Area |
---|
Name | Population | Area |
---|
01.
我们不需要修改关于Grid和ComboBox的任何代码,就能让它们继续工作。唯一需要做的改动,就是声明一个数据源,并将它设置为grid的输入。我们不需要操心任何关于数据获取、解析、以及管理的事情,数据存储器的API做了所有的工作!除此之外还有其他许多有用的数据存储器,包括CsvStore,FileStore,FlickrStore,JsonQueryRestStore,PersevereStore,ServiceStore,WikipediaStore,等等。如果需要一个完整列表,请参见dojox.data目录Dojo Data是一个强大而灵活的工具。数据存储器使得切换前端组件和后端实现都变得很容易,不需要改变许多代码。因此我们可以为同一个数据存储器很方便地更换前端Diji部件,另外,同一个数据存储器也能由页面上的多个Dijit部件、图表或grid同时使用。更多相关资源:•RESTful JSON + Dojo Data
•Easy Exploration of Dojo Data Stores
•Web Service to dojo.data Store in 4 Easy Steps
发表于 @ 2010年11月08日 20:16:00 | 评论( 0 ) | 编辑| 举报| 收藏 旧一篇:部分Dojo常用函数简介(五)——事件处理以及Ajax I/O函数扩展 | 新一篇:JavaScript 开发测试工具概览
查看最新精华文章 请访问博客首页相关文章发表评论表 情: 评论内容: 用 户 名:登录 注册 匿名评论 匿名用户验 证 码: 重新获得验证码
热门招聘职位荷兰互联网公司诚聘Web(Rails)开发工程师【重庆大龙网】高薪诚聘中高级软件工程师美资高薪诚聘软件开发及数据库人才【新迪数字】高薪诚聘JAVA项目软件架构师、JAVA项目主管!!【尚品网】诚招软件开发工程师【UniQlick】【8K-12K】急招Java工程师、技术工程师、数据分析师【 CSDN】高薪诚聘:java、运营、就业、商务策划经理、网站编辑!【武汉亨通科技】高薪诚聘项目经理、高级软件工程师,邀您加盟!【careerfocus】科锐福克斯猎头公司强悍猎聘IT人才!【沃尔玛中国】信息系统部急聘IT英才(上海,深圳)!!!【融资城】投融资平台高薪诚聘技术总监、产品经理等【搜狐公司】海量技术职位火热招聘中!荷兰互联网公司诚聘Web(Rails)开发工程师【重庆大龙网】高薪诚聘中高级软件工程师美资高薪诚聘软件开发及数据库人才【新迪数字】高薪诚聘JAVA项目软件架构师、JAVA项目主管!!【尚品网】诚招软件开发工程师【UniQlick】【8K-12K】急招Java工程师、技术工程师、数据分析师【 CSDN】高薪诚聘:java、运营、就业、商务策划经理、网站编辑!【武汉亨通科技】高薪诚聘项目经理、高级软件工程师,邀您加盟!【careerfocus】科锐福克斯猎头公司强悍猎聘IT人才!【沃尔玛中国】信息系统部急聘IT英才(上海,深圳)!!!【融资城】投融资平台高薪诚聘技术总监、产品经理等【搜狐公司】海量技术职位火热招聘中! 公司简介|招贤纳士|广告服务|银行汇款帐号|联系方式|版权声明|法律顾问|问题报告
北京创新乐知信息技术有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
江苏乐知网络技术有限公司 提供商务支持
Email:webmaster@csdn.net
Copyright © 1999-2010, CSDN.NET, All Rights Reserved
本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/dojotoolkit/archive/2010/11/08/5996121.aspx
深入了解Dojo Data - Dojo中文博客 - CSDN博客
理解dojo.require机制 - Dojo中文博客 - CSDN博客
Dojo历史简介 - Dojo中文博客 - CSDN博客
Dojo:不容忽视的RIA框架 - Dojo中文博客 - CSDN博客
浅析dojo中的有状态对象 - Dojo中文博客 - CSDN博客
部分Dojo常用函数简介(一)——Javascript基础扩展函数 - Dojo中文博客 ...
Dojo Data Store——统一数据访问接口
awk中文手册 - FreeXploiT - CSDN博客
Dojo异步编程 事件描述
Dojo Javascript 编程规范(精)
ASP.Net Web Page深入探讨 - thy822的专栏 - CSDN博客
深入理解C++的动态绑定和静态绑定 - 常高伟的专栏 - CSDN博客
bbbbbbj的专栏 - CSDN博客
中文博客搜索网站
数据分析三部曲 - Data Mining的日志 - 网易博客
vc++ - lonelytreebjfu的专栏 - CSDN博客
2010年度CSDN十大博客文章
ASCII码表 - heruibin的专栏 - CSDN博客
程序员能力矩阵 - 帐前卒 专栏 - CSDN博客
┢┦ī М ī - CSDN博客
Java排序汇总 - XuHaiPeng - CSDN博客
tcp cwnd - linweixuan的专栏 - CSDN博客
MSP430开发笔记 - 人在旅途 - CSDN博客
RTMP是什么 - Thinkor2k8的专栏 - CSDN博客