| Spry目前的版本1.0.由Adobe于2006年5月11日發(fā)布的For Ajax的js類(lèi)庫.發(fā)布的事情我前幾天在Blog上提過(guò). 其實(shí)Spry目前只有SpryData.js和xpath.js這兩個(gè)標準類(lèi)。屬于數據操作的核心對象了.就象Adobe對外宣稱(chēng)的那樣.Spry是針對加強數據控制的產(chǎn)品.這樣的架構確實(shí)是略顯簡(jiǎn)單了.不過(guò)從Adobe隨帶的幾個(gè)Demo中所包含的Effect類(lèi)來(lái)看.野心應該不止這些才是啊. 廢話(huà)不多說(shuō)了.Spry所提供的數據操作很簡(jiǎn)單.主要的手段是xpath. 特點(diǎn)之一:xpath的簡(jiǎn)化操作. 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節點(diǎn)下的所有xml內容. 特點(diǎn)之二:特殊的標簽屬性. 同Backbase一樣.Spry也使用了標簽的屬性來(lái)作為程序的流程控制.(Ajax架構我只用過(guò)Backbase,別的架構不清楚.需要的話(huà)可以參考Wiki里面的列表).這點(diǎn)同Coldfusion倒是有點(diǎn)象,不愧是同門(mén)師兄弟. 例: <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>中的這四個(gè)變量都是當前My_ds中的屬性和節點(diǎn)值.這里對數據的操作又有點(diǎn)想RecordSet了.還可以通過(guò)XMLDataSet的sort(param)方法來(lái)進(jìn)行排序.Spry的對象方法在下載的文檔中并沒(méi)有完全公開(kāi).期待更多的文檔~. 光就數據操縱來(lái)說(shuō),Spry是不錯的。我不由的想把Spry和Backbase放在一起來(lái)使用了。畢竟Backbase的效果庫也是很驚人的。感興趣的話(huà)可以看看http://www.adobe.com/devnet/logged_in/pgubbay_spry.html.實(shí)例和下載地址這里都有了. |