`

Dojo 基础入门(四)

    博客分类:
  • dojo
阅读更多
1.            数据
1.1.    了解dojo.data
dojo.data提供了封装的标准的数据存取API,作为统一的数据访问层而存在。所有的数据都是item或者item的属性。Dojo.data提供了一个基本的ItemFileReadStore类来读取JSON格式数据,而dojox提供了更多扩展,比如XmlStore,  CsvStore, OpmlStore等,我们也可以自定义自己的store类型。

在dojo.data的操作都是异步的,可以不刷新页面而取回数据。

1.2.    dojo.data的一些术语与传统数据库的对比
dojo.data
传统数据库
备注

data source
数据库
 

datastore

 

item
行记录
 

attribute

 

reference
 
有些类似外键依赖,但外键指向的父记录,而reference指向子记录的列表

identity
主键
 

query
Where条件子句
从目前看,语法不如Where条件子句丰富,只支持and,不支持or






1.3.    JSON


JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式。它是基于Javascript标准的一个子集,JavaScriptd的数据结构(如字符串、数组、对象)的表示方式恰好与JSON相同,所以JSON可以被Javascript无损的识别。它是一种简单文本格式,与XML相比,它更加易读、更少的数据冗余。

一段典型的JSON格式数据形如:

{ identifier: 'name',
   items: [
        { name: 'Adobo', aisle: 'Mexican' },
        { name: 'Balsamic vinegar', aisle: 'Condiments' },
        { name: 'Basil', aisle: 'Spices' },
        { name: 'Bay leaf', aisle: 'Spices' },
        { name: 'Beef Bouillon Granules', aisle: 'Soup' },
        { name: 'Vinegar', aisle: 'Condiments' },
        { name: 'White cooking wine', aisle: 'Condiments' },
        { name: 'Worcestershire Sauce', aisle: 'Condiments' }]

}


假设该段数据存放于pantry_spices.json文件,相应的Dojo datastore的声明和使用如下:



<div dojoType="dojo.data.ItemFileReadStore" jsId="pantryStore"
        url="pantry_items.json"></div><!-(1)-->
<div
     name="pantry_item" dojoType="dijit.form.FilteringSelect"
     store="pantryStore"
     searchAttr="name" value="Vinegar" autoComplete="true"
></div><!-(2)-->




(1)  指明了datastore的类型是dojo.data.ItemFileReadStore;数据的url,请注意这里除了可以是文件路径,也可以是一段请求得到的流;以及该datastore的jsId

(2)  这里声明了dojoType为dijit.form.FilteringSelect的一个组件,该组件在html页面上展现形式为一个下拉框,需要有数据填充,其中store属性指向了jsId为pantryStore的一个datastore,由此把刚刚在(1)处定义的datastore的数据关联了起来。

1.4.    datastore的读取
var pantryStore = new dojo.data.ItemFileReadStore({url: "pantry_items.json" } ); //(1)



var gotList = function(items, request){ //(2)
    var itemsList = "";
    for (var i = 0; i < items.length; i++){
       itemsList += pantryStore .getValue(items[i], "name") + " "; //(3)
    }
    alert("All items are: " + itemsList);
}
var gotError = function(error, request){ //(4)
    alert("The request to the store failed. " +  error);
}

pantryStore.fetch({onComplete: gotList, onError: gotError,query:{name:”*”}}); //(5)




(1)  此处用编程实现方式定义了一个datastore,在这里是dojo.data.ItemFileReadStore,其实还可以是其它的datastore类型,如XmlStore,CsvStore等,甚至可以是自定义的datastore类型。

(2)  自定义函数,为fetch函数做准备,用于数据处理。

(3)  getValue函数,它是由dojo.data封装的API,用于得到某个item的某个属性名称的值。具体可参考Dojo API说明。

(4)  自定义函数,为fetch函数做准备,用于异常处理。

(5)  执行数据查询的语句,需要传入一些查询选项,比如在示例中出现的:

onComplete:在得到所有符合条件的数据后的处理函数,参数为item的列表;

onError:出现异常的处理函数;

query: 查询条件,是一个Object类型,形如{ name: '?hite*', aisle: 'Condiments' },”,”表示条件的and关系,通配符”?”,”*”表示一个或多个字符(包含0个);

此外,还有
queryOptions: 查询选项,指明是否忽略大小写或是否深度查找item的子;
onBegin:在查询前的处理函数;
onItem: 在遇到符合条件的每一个item时的处理函数;
等。

还有一些其他的选项,具体可参考Dojo API说明。
分享到:
评论

相关推荐

    dojo入门系列教程.rar

    dojo入门系列教程,包含入门简介,在javascript基础上介绍dojo的语法特色,ajax的dojo包装---xhr框架的编程要点, Dojo 事件机制.以及对dojo最具特色的web UI设计的全面介绍.

    dojo基础知识内容简介

    dojo基础知识,主要用于介绍一些dojo入门的内容

    Dojo基础资料

    Dojo基础及练习,很好的入门材料.分三部分: fundamental,Interface及Developing skill

    DOJO权威指南

    学习DOJO的入门书籍,从基础开始深入讲解DOJO使用和原理

    dojo基础知识

    学习dojo过程中的一些基础只是整理,适合入门看。

    技术基础:从头开始学习 Dojo

    IBM Dojo javascript 框架入门教程,让你循序渐进的学习Dojo。

    dojo:Dojo 1-Dojo 1工具包核心库

    道场这是Dojo 1 Toolkit的基础软件包。 在保持不变的同时,新的开发主要集中在现代Dojo上。 请或者如果您需要更详细的技术状态和概述,请访问 。 该程序包有时被称为“核心”,它包含最普遍适用的子程序包和模块。 ...

    webGIS从基础到开发

    介绍ArGIS Sever JvaScipLAPI的构成,Dojo 的基础知识;后将介绍ArcGIS Server JaSripAPI的基础第3章首先介绍通过Dojo布局小部件件设计几种不同类型的页面总体框架,然后介绍通扩展小部件类来管理页面中元素的两种...

    Coding-Dojo-Java

    编码-Dojo-JavaCoding Dojo的Java堆栈中的课程工作,其中包括Java基础知识,Java OOP,Web上的Java和Java Spring。技术: Java弹簧工具套件MySQL Sprint BootSpring数据-JPA Spring安全SpringMVC JSP技能专长: 面向...

    dojo-board:Dojo任务的标准板机制

    Python Dojos的棋盘游戏介绍通常,在运行Python Dojo时,我们最终面临基于某种基于板或图块的景观的挑战。 在这些情况下,花费大量时间来构建基本的棋盘功能以支持更有趣的游戏算法并不罕见。 该模块实现了通用板...

    dojo-blog:来自忍者教程

    Create React App入门 该项目是通过引导的。 可用脚本 在项目目录中,可以运行: yarn start 在开发模式下运行应用程序。 打开在浏览器中查看它。 如果您进行编辑,则页面将重新加载。 您还将在控制台中看到任何...

    Struts 2.1 权威指南 part13 pdf

     本书适用于有较好的Java编程基础,有一定JSP、Servlet等Web编程基础或具备初步Java EE编程基础的读者。本书既给出了Struts 2入门级的示范实例,也详细讲解了Struts 2各个知识点及各个选项的详细用法,可以作为...

    Struts 2.1 权威指南 part04 pdf

     本书适用于有较好的Java编程基础,有一定JSP、Servlet等Web编程基础或具备初步Java EE编程基础的读者。本书既给出了Struts 2入门级的示范实例,也详细讲解了Struts 2各个知识点及各个选项的详细用法,可以作为...

    Struts 2.1 权威指南 part01 pdf

     本书适用于有较好的Java编程基础,有一定JSP、Servlet等Web编程基础或具备初步Java EE编程基础的读者。本书既给出了Struts 2入门级的示范实例,也详细讲解了Struts 2各个知识点及各个选项的详细用法,可以作为...

    Struts 2.1 权威指南 part02 pdf

     本书适用于有较好的Java编程基础,有一定JSP、Servlet等Web编程基础或具备初步Java EE编程基础的读者。本书既给出了Struts 2入门级的示范实例,也详细讲解了Struts 2各个知识点及各个选项的详细用法,可以作为...

    Struts 2.1 权威指南 part06 pdf

     本书适用于有较好的Java编程基础,有一定JSP、Servlet等Web编程基础或具备初步Java EE编程基础的读者。本书既给出了Struts 2入门级的示范实例,也详细讲解了Struts 2各个知识点及各个选项的详细用法,可以作为...

    Struts 2.1 权威指南 part03 pdf

     本书适用于有较好的Java编程基础,有一定JSP、Servlet等Web编程基础或具备初步Java EE编程基础的读者。本书既给出了Struts 2入门级的示范实例,也详细讲解了Struts 2各个知识点及各个选项的详细用法,可以作为...

    Struts 2.1 权威指南 part05 pdf

     本书适用于有较好的Java编程基础,有一定JSP、Servlet等Web编程基础或具备初步Java EE编程基础的读者。本书既给出了Struts 2入门级的示范实例,也详细讲解了Struts 2各个知识点及各个选项的详细用法,可以作为...

    Struts 2.1 权威指南 part11 pdf

     本书适用于有较好的Java编程基础,有一定JSP、Servlet等Web编程基础或具备初步Java EE编程基础的读者。本书既给出了Struts 2入门级的示范实例,也详细讲解了Struts 2各个知识点及各个选项的详细用法,可以作为...

    Struts 2.1 权威指南 part12 pdf

     本书适用于有较好的Java编程基础,有一定JSP、Servlet等Web编程基础或具备初步Java EE编程基础的读者。本书既给出了Struts 2入门级的示范实例,也详细讲解了Struts 2各个知识点及各个选项的详细用法,可以作为...

Global site tag (gtag.js) - Google Analytics