采用DWR框架和反向AJAX的Web監(jiān)控系統(tǒng)開發(fā)
(2)配置JavaBean到DWR
使用DWR的配置文件/WEB-INF/dwr.xml,將JavaBean引入到DWR體系中,通過JavaScript就可以直接調(diào)用JavaBean的監(jiān)測(cè)方法。
其中,javascript屬性指定JavaScript中對(duì)象的名稱,creator=“new”指定由DWR引擎自動(dòng)創(chuàng)建JavaBean類的實(shí)例。
2.4 客戶端實(shí)現(xiàn)
客戶端使用DWR代碼庫(kù),用JavaScript結(jié)合HTML,DOM實(shí)現(xiàn)監(jiān)控Web頁(yè)面的數(shù)據(jù)顯示。為節(jié)省篇幅,只介紹重點(diǎn)配置和示意代碼。
(1)引入DWR代碼庫(kù)
這里使用HTML與JavaScript分離原則,JavaScript代碼放在單獨(dú)的JS文件中。
(2)啟用DWR反向AJAX
在main.js中定義所有監(jiān)控業(yè)務(wù)的函數(shù)。
(3)定義監(jiān)控?cái)?shù)據(jù)接收HTML單元
在監(jiān)控頁(yè)面上使用
定義DWR反向AJAX推送數(shù)據(jù)的顯示位置,由服務(wù)器端JavaBean通過DWR AJAX直接讀取??蛻舳隧?yè)面和JavaScript不需進(jìn)行任何請(qǐng)求操作。部分測(cè)點(diǎn)示意如下:
(4)JavaScript調(diào)用JavaBean方法
啟動(dòng)服務(wù)器端JavaBean監(jiān)測(cè)方法讀取PLC數(shù)據(jù),進(jìn)行數(shù)據(jù)推送。在監(jiān)測(cè)方法內(nèi)啟動(dòng)所有監(jiān)測(cè)點(diǎn)的監(jiān)測(cè)線程,實(shí)時(shí)監(jiān)測(cè)數(shù)據(jù)并推送到客戶端。
結(jié)合JavaEE平臺(tái)、AJAX、DWR和反向AJAX,實(shí)現(xiàn)了一個(gè)全新的無需頁(yè)面刷新、無需進(jìn)行HTTP請(qǐng)求的全新Web監(jiān)控系統(tǒng),解決了傳統(tǒng)Web的HTTP請(qǐng)求/響應(yīng)模式無法滿足監(jiān)控系統(tǒng)實(shí)時(shí)性要求的難題。尤其是反向AJAX技術(shù)實(shí)現(xiàn)的推模式,可以將服務(wù)器端監(jiān)測(cè)數(shù)據(jù)直接通過TCP/IP推送到HTML客戶端,并直接寫入到HTML元素中,得以實(shí)現(xiàn)與現(xiàn)有Web監(jiān)控系統(tǒng)傳統(tǒng)模式完全不同的全新系統(tǒng),實(shí)現(xiàn)了無需進(jìn)行頁(yè)面刷新的工作模式。由于只傳輸監(jiān)控?cái)?shù)據(jù),無需傳輸數(shù)據(jù)格式HTML代碼,系統(tǒng)性能得到了極大改善,滿足了監(jiān)控系統(tǒng)對(duì)實(shí)時(shí)性的要求。今后無刷新、推模式的Web監(jiān)控系統(tǒng)必將得到廣泛應(yīng)用。
評(píng)論