/jQueryStore

Primary LanguageJavaScript

#JQueryStore

定义jQuery的数据存储统一对象,最初是为解决在Domino环境下 Readviewentires URL命令返回的DXL格式数据,后来参考Dojo的Store 设计重新对Store对象进行了定义,抽出Store API。扩展Memory / LocalStore/DXLStore等对象。

微博 http://weibo.com/ivy203 ##StoreAPI

对DojoStoreAPI进行的移植

###类成员

###对象成员

类方法

###Store.PutDirectives(id,before,parent,overwrite) Summary

	将指令传递给  put() 和 add() ,以更新这两个操作对对象内容的更新和创建 

Arguments

	id  {String|Number} 如果创建一个新的Store对象,则为对象的id  
	before {Object?}  如果存在该对象,则表示将新的对象添加到改对象之前,为null则将新添加对象追加到最后  
	parent {Object?}  在分层存储时,该对象表示要更新的对象的父对象  
	overwrite {Boolean?}  表示是否更新对象,如果为true,则如果对象存在,则更新对,为false则表示无论创建一个新对象。这个方法错误add()的补充

###Store.SortInformation(attribute, descending)

Summary

	对象排序属性的方式(指定的属性 attribute排序方式)

Arguments

	 attribute {String}	排序属性名称.   
	 descending { Boolean}排序方法,缺省为 flase  

###Store.QueryOptions(sort,start,count)

Summary

	用于设置默认查询参数

Arguments

	sort {Store.SortInformation[]?} 设置排序方式对象数组  
	start {Numnber?}  返回记录集和开始处的指针  
	count {count ?} 返回记录集和长度   

###Store.QueryResults

Summary

	Store查询返回的记录集,在处理具有延迟调查询时,可以返回一个Promise(参考jQuery.Deferred)。
	在使用过程中,用户不用担心异步处理以及延迟带来的问题

jQuery.Deferred

####forEach/each(calllback,thisObject)

Summary

	遍历集和,如有是一个promise,则在对象返回后执行遍历.
	此处使用each方法和forEach是方便jQuery开发习惯
	参考:https://developer.mozilla.org/en/Core_JavaScript_1.5_Reference/Objects/Array/forEach

Arguments

	callback {function} 对每一个元素进行处理的方法
	   
	
	thisObject (object?) callback内作为this使用的对象

####filter/grep(calllback,thisObject)

Summary

	 对返回结果继续条件过滤
	 grep是考虑jQuery开发习惯,建议使用 filter 
	 参考: https://developer.mozilla.org/en/Core_JavaScript_1.5_Reference/Objects/Array/filter.

Arguments

	callback {function} 对每一个元素进行处理的方法,返回true表示保留此元素,返回false表示过滤此元素
	   
	
	thisObject (object?) callback内作为this使用的对象		 

####map(calllback,thisObject)

Summary

	 参考: https://developer.mozilla.org/en/Core_JavaScript_1.5_Reference/Objects/Array/map.

Arguments

	callback {function} 对每一个元素进行处理的方法,返回true表示保留此元素,返回false表示过滤此元素
	   
	
	thisObject (object?) callback内作为this使用的对象		

####then(callback,errorHandler)

Summary

	 Promise 返回后执行

Arguments

	callback {function} 要执行的函数  
	
	errorHandler (object?) callback内作为this使用的对象		

####observe(listener, includeAllUpdates)

Summary

	注册一个查询结果修改的事件(观察者模式)

Arguments

	listerner {Function} 当查询结构进行修改时该函数被调用,具体参考listerner函数的书面  
	includeAllUpdates {Boolean ?} 表示是否对结果集产生影响,默认为false,既修改不会对结果集和数据顺序等产生任何用心。

#####listener(object, removedFrom, insertedInto)

	object {object} 被修改(创建,修改,删除)的对象参数
	removedFrom {Number} object 在结果数组的索引. 如果值是-1,对象不再这个结果集和内
	insertedInto {Number} object 现在在结果数组的索引. 如果值是-1,那么是一个从集和内移除的对象

####total
Summary

	返回一个Number 或者 Promise

###Store.Transaction

Summary

	一个 transaction 方法返回的对象,表示一事务操作

####commit()

Summary

	执行一个事务,事务提交失败可能抛出一个错误;在异步模式下会返回一个promise,最终会返回事务执行成功或失败

####abort(callback, thisObject)

Summary

	终止一个事务,终止操作失败可能抛出一个错误;在异步模式下会返回一个promise,最终会返回终止操作的成功或失败

##对象属性

###idProperty

Summary

	如果Store对象具有主见,则表示该属性值是记录的身份标识,记录的该属性值必须唯一 ,Store会根据该属性创建索引

##对象方法

###quertEngine

Summary

	对Store进行查询的函数/方法,并返回一个结果集合,该方法可以进行替换  
	该方法存在两个参数,第一个为Query Params ,第二关参数为 option 如排序分页等  
	该方法返回一个匹配的数组。 		
	var query =QueryEngin(query,option)

Arguments

	query Params {Object} 要查询的条件,查询格式{ name:"*/habq/hik",age:{val:16,condition:">"},city:"shanghai"} 
	option	{Object?}  排序,查询记录数等信息
###get(id)

Summary

	根据Identity返回一个记录对象

Arguments

	id {String|Number} Store 记录的 Identitiy
	
	returns { Object} 返回一个记录对象
###getIdentity(object)

Summary

	根据一个记录对象返回该记录的Identity

Arguments

	object {Obejct} 要查询的Item对象
	
	returns{String|Number}发挥记录对象的Identity
###put(object,directives)

Summary

	存入Stores 的记录对象

Arguments

	object{object} 要存入度对象
	 
	directives{Store.PutDirectives}  put 更新制冷对象
	 
	returns: {Number|String} 
###add(object,directives)

Summary

	存入Stores 的记录对象 ,如果该对象存在,则抛出一个错误

Arguments

	object{object} 要存入度对象
	 
	directives{Store.PutDirectives}  put 更新制冷对象
	 
	returns: {Number|String} 
###remove(id)

Summary

	根据identity 删除Store内地一个记录,该方法会删除记录及Store的索引

Arguments

	id {Number|String} 要删除的记录的Identity

#query(query,options)

Summary

	查询对象内的记录,但给对象不会给改变,返回查询记录的集合

Arguments

	query{String|Object|Function} 从Store内进行搜索使用
	
	options{Store.QueryOptions} 可选参数,用于查询结果集的处理
	
	returns{Store.QueryResults} 查询的结果集合,并扩展了一些方法

Example

	//		给定一个存在的store
	//
	//	...查找所有属性 primes 为 true的items :
	//
	store.query({ prime: true }).forEach(function(object){
			// handle each object
	});
###getChildren(parent, options)

Summary

	获取一个对象的子元素

Arguments

	parent{object} 要查找的子对象所对应的父对象
	
	options {Stroe.QueryOptions} 可选参数,用于对资源是的查询
	
	returns {Store.QueryResults} 查询到的子对象的结果集
###getMetadata(object)

Summary

返回对象的原始数据

Arguments

	object {object} 要返回的原始数据对象

###transaction()

Summary

	创建一个新的事务,并返回一个 Store.Transaction 对象