Spry目前的版本1.0.由Adobe于2006年5月11日发布的For Ajax的js类库.发布的事情我前几天在Blog上提过. 其实Spry目前只有SpryData.js和xpath.js这两个标准类。属于数据操作的核心对象了.就象Adobe对外宣称的那样.Spry是针对加强数据控制的产品.这样的架构确实是略显简单了.不过从Adobe随带的几个Demo中所包含的Effect类来看.野心应该不止这些才是啊.
废话不多说了.Spry所提供的数据操作很简单.主要的手段是xpath. 特点之一:xpath的简化操作. Spry.Data.XMLDataSet("XMLsource", "XPathToRepeatingChildNode"); 例: var My_ds = new Spry.Data.XMLDataSet("data.xml", "/employees/employee"); data.xml是DataSource,"/employees/employee"是xpath的路径.My_ds对象直接被赋予employee节点下的所有xml内容.
特点之二:特殊的标签属性. 同Backbase一样.Spry也使用了标签的属性来作为程序的流程控制.(Ajax架构我只用过Backbase,别的架构不清楚.需要的话可以参考Wiki里面的列表).这点同Coldfusion倒是有点象,不愧是同门师兄弟. 例: <span spryregion="My_ds"> <select spryrepeatchildren="My_ds" onchange="My_ds.setCurrentRow(this.value)"> <option spryif="{ds_RowNumber} == 0" value="{ds_RowID}" selected="selected">{username}</option> <option spryif="{ds_RowNumber} != 0" value="{ds_RowID}">{username}</option> </select> </span> <span sprydetailregion="My_ds">{@id} - {firstname} {lastname} - {phone} </span> 不难看出,spryregion,spryrepeatchildren,spryif等全是Spry定义的作为标签属性方法.而setCurrentRow则是XMLDataSet的方法.ds_RowNumber和ds_RowID都是XMLDataSet的属性. <span sprydetailregion="My_ds">{@id} - {firstname} {lastname} - {phone} </span>中的这四个变量都是当前My_ds中的属性和节点值.这里对数据的操作又有点想RecordSet了.还可以通过XMLDataSet的sort(param)方法来进行排序.Spry的对象方法在下载的文档中并没有完全公开.期待更多的文档~.
光就数据操纵来说,Spry是不错的。我不由的想把Spry和Backbase放在一起来使用了。毕竟Backbase的效果库也是很惊人的。感兴趣的话可以看看http://www.adobe.com/devnet/logged_in/pgubbay_spry.html.实例和下载地址这里都有了.
|