WebWork 2.2新特性(九) AJAX之Remote A Tag
首先,我們把wiki上的文檔翻譯一下:
遠程鏈接標(biāo)簽允許對一個URL進行訪問,但可以不刷新頁面.
屬性
名稱 | 描述 |
---|---|
id (required) | 元件ID |
href (required) | 用來獲取內(nèi)容的URL |
errorText | 如果取內(nèi)容時發(fā)生了錯誤,向用戶顯示的提示 |
showErrorTransportText | true/false - 當(dāng)獲取內(nèi)容有問題的時候,是否把錯誤信息當(dāng)作內(nèi)容顯示 |
notifyTopics | 遠程調(diào)用完成后,對那些Topic進行事件激發(fā),可以多個,用逗號分割 |
afterLoading | 遠程調(diào)用完畢后,要執(zhí)行的Javascript代碼 |
Remote A標(biāo)簽我覺得值得關(guān)注的特性是notifyTopics,也就是可以觸發(fā)別的控件的事件,它可以是一個發(fā)令員.
首先我們來看Remote A標(biāo)簽的一個例子
<ww:a id="link1" theme="ajax" href="/AjaxRemoteLink.action" showErrorTransportText="true" errorText="An Error ocurred">Click Me</ww:a> |
這個標(biāo)簽的含義:
- ID為link1
- 使用ajax模板
- 點擊鏈接時訪問的網(wǎng)址為"/AjaxRemoteLink.action"
- 如果發(fā)生錯誤把錯誤當(dāng)作內(nèi)容處理
- 錯誤信息為"An Error ocurred"
點擊這個鏈接,頁面會去訪問"/AjaxRemoteLink.action",如果返回的結(jié)果是JavaScript,就會執(zhí)行相應(yīng)的JavaScript.
如果返回的內(nèi)容不是JavaScript,系統(tǒng)不會有任何動作,也不會觸發(fā)事件. (這個確實有點令人迷惑,也許會改進?如何改進哪?)
我們再來看一個可以觸發(fā)事件的標(biāo)簽,這個是和DIV結(jié)合的,可以參考ajax例子中的lesson3中的例子:
<ww:div id="one" cssStyle="border: 1px solid yellow;" <ww:a id="link1" theme="ajax" href="/ajax/urltestjs.jspa" |
首先是一個要被觸發(fā)的Div標(biāo)簽,它監(jiān)聽的Topic為"mylink1_click"(可以監(jiān)聽多個).然后是一個A標(biāo)簽,觸發(fā)的Topic是"mylink1_click",此處也可以是多個,但用戶點擊這個Remote A標(biāo)簽時,A標(biāo)簽會執(zhí)行返回的JavaScript代碼,也會觸發(fā)Div標(biāo)簽重新裝載它自身的內(nèi)容.
如果標(biāo)簽還有afterLoading='alert("done")'的代碼,在觸發(fā)Div事件之前還會執(zhí)行這個 afterLoading,可以閱讀前面Div標(biāo)簽中關(guān)于afterLoading的說明.
意外:這個Remote A的功能就這么多,本來以為應(yīng)該有一個點擊后用指定的內(nèi)容替換目標(biāo)Div的內(nèi)容,不過目前沒有發(fā)現(xiàn)有直觀的做法可以實現(xiàn)這個功能,也許有其他做法更合適吧.
注意:撰寫本文時,WebWork2.2還沒有最后發(fā)布,在最后發(fā)布的版本里應(yīng)該會有一些變化,請以最后發(fā)布的版本為準(zhǔn).
除經(jīng)特別注明外,本文章版權(quán)歸JScud Develop團隊或其原作者所有.
轉(zhuǎn)載請注明作者和來源. scud(飛云小俠) 歡迎訪問 JScud Develop
posted on 2005-09-13 15:25 Scud(飛云小俠) 閱讀(962) 評論(0) 編輯 收藏 所屬分類: WEB