分享

初试Spry的数据控制.

 pengyan 2006-12-06

初试Spry的数据控制.  [2006-5-17]  

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_RowNumberds_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.实例和下载地址这里都有了.

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多