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;"
                  href="/ajax/test1.jspa"        theme="ajax"
                  listenTopics="mylink1_click" delay="1000">Initial Content</ww:div>

          <ww:a     id="link1"   theme="ajax"   href="/ajax/urltestjs.jspa"   
            showErrorTransportText="true"  
            notifyTopics="mylink1_click"
            errorText="An Error ocurred">Update</ww:a> 



          首先是一個要被觸發(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

          <2005年9月>
          28293031123
          45678910
          11121314151617
          18192021222324
          2526272829301
          2345678

          導(dǎo)航

          統(tǒng)計

          公告

          文章發(fā)布許可
          創(chuàng)造共用協(xié)議:署名,非商業(yè),保持一致

          我的郵件
          cnscud # gmail


          常用鏈接

          留言簿(15)

          隨筆分類(113)

          隨筆檔案(103)

          相冊

          友情鏈接

          技術(shù)網(wǎng)站

          搜索

          積分與排名

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 霍山县| 佳木斯市| 翼城县| 耒阳市| 长葛市| 昭苏县| 汝阳县| 恩平市| 松滋市| 板桥市| 巴彦县| 黑河市| 大石桥市| 临邑县| 连南| 灯塔市| 内丘县| 青铜峡市| 大悟县| 平舆县| 平武县| 崇仁县| 辽阳市| 隆子县| 昌邑市| 乡宁县| 盐津县| 乌拉特中旗| 沭阳县| 息烽县| 建德市| 綦江县| 西乌珠穆沁旗| 天镇县| 红安县| 田林县| 多伦县| 临沭县| 巴南区| 云龙县| 浮山县|