Remote Div Tag
wiki上的文檔翻譯:
Remote DIV 標(biāo)簽和普通的Html的DIV標(biāo)簽工作方式是一樣的,但是它可以通過(guò)標(biāo)簽內(nèi)指定的一個(gè)網(wǎng)址來(lái)裝載它的內(nèi)容.
屬性
名稱(chēng) |
描述 |
id (必有): |
DIV的ID |
href (必有): |
用來(lái)獲取內(nèi)容的網(wǎng)址 |
delay: |
第一次裝載內(nèi)容需要延遲多長(zhǎng)時(shí)間 (毫秒) |
updateFreq: |
多長(zhǎng)時(shí)間重新取一次內(nèi)容 (毫秒) |
loadingText: |
裝載內(nèi)容中對(duì)用戶顯示的文字 (特別是取內(nèi)容的時(shí)候要花費(fèi)很長(zhǎng)的時(shí)間 |
errorText: |
如果取內(nèi)容時(shí)發(fā)生了錯(cuò)誤,向用戶顯示的提示 |
showErrorTransportText: true/false |
當(dāng)獲取內(nèi)容有問(wèn)題的時(shí)候,是否把錯(cuò)誤信息當(dāng)作內(nèi)容顯示 |
listenTopics: |
監(jiān)聽(tīng)的Topic名稱(chēng)(多個(gè)逗號(hào)分割), 將會(huì)導(dǎo)致此DIV重新獲取內(nèi)容 |
afterLoading: |
獲取內(nèi)容后要執(zhí)行的Javascript代碼 |
其他功能
使用javascript代碼我們還可以刷新內(nèi)容,停止或者開(kāi)始刷新組件.例如一個(gè)id是"remotediv1"的div組件:
開(kāi)始刷新的javascript代碼: remotediv1.start();
停止刷新的javascript代碼remotediv1.stop();
刷新內(nèi)容的javascript代碼:remotediv1.bind();
Remote DIV標(biāo)簽
最值得關(guān)注的特性:
可以自己重新裝載自己的內(nèi)容
可以監(jiān)聽(tīng)Topic,也就是別的動(dòng)作可以引發(fā)更新內(nèi)容的行為
JavaScript代碼可以控制它的行為
來(lái)看Remote Div標(biāo)簽的最簡(jiǎn)單的一個(gè)例子example1.jsp:
1 <%@ page contentType="text/html;charset=UTF-8" language="java" %>
2 <%@ taglib prefix="ww" uri="/webwork" %>
3 <html>
4 <head>
5 <title>Ajax Examples</title>
6 <jsp:include page="../commonInclude.jsp"/>
7 </head>
8 <body>
9 <ww:div id="once" theme="ajax" cssStyle="border: 1px solid yellow;"
10 href="/AjaxTest.action" delay="5000" loadingText="loading
">Initial Content</ww:div>
11 </body></html>
12
這個(gè)文件,內(nèi)容非常簡(jiǎn)單,使用了一個(gè)ww:div標(biāo)簽,設(shè)置了一個(gè)id,使用的是ajax這個(gè)模板(如果你想定義自己的模板,請(qǐng)務(wù)必參考ajax模板的編寫(xiě)方法),設(shè)置讀取內(nèi)容的url為"/AjaxTest.action",設(shè)置延遲5000毫秒后讀取內(nèi)容,裝載內(nèi)容時(shí)顯示的文本設(shè)置為"loading...",div顯示時(shí)的初始內(nèi)容時(shí)"Initial Content".
很簡(jiǎn)單,在打開(kāi)網(wǎng)頁(yè)5秒后,標(biāo)簽會(huì)自動(dòng)去訪問(wèn)"/AjaxTest.action",并把獲取的內(nèi)容設(shè)置為Div的內(nèi)容.
再來(lái)看一個(gè)
定時(shí)自動(dòng)刷新的例子:
<ww:div id="twoseconds" cssStyle="border: 1px solid yellow;" href="/AjaxTest.action"
theme="ajax" delay="2000" updateFreq="3000" errorText="There was an error">Initial Content</ww:div>
這個(gè)標(biāo)簽產(chǎn)生的結(jié)果每3秒鐘刷新一次DIV的內(nèi)容,和上面的差不多,只是多了一個(gè)
updateFreq設(shè)置.
此標(biāo)簽還有一個(gè)
afterLoading屬性,使用方法如下:
<ww:div ...... afterLoading='alert("done")'>Initial Content</ww:div>
<ww:div ...... afterLoading="alert(\"done\")">Initial Content</ww:div>