2013-04-30 33 views
0

我的工作有兩個部分項目:更新JSP當一個客戶端文件更改

一)在客戶機上運行的Java應用程序。 b)Web服務器上託管的Web應用程序。

Java應用程序在隨機時間間隔後產生一些結果。這些結果需要在網頁/ JSP中使用javascript方法反映出來,每5秒鐘更新一次,以便它保持最新狀態。

請問您能否提出一些方法。

我相信java應用程序不需要發送任何請求到服務器端。相反,如果它可以寫入本地文件,而JSP文件中的javascript方法會持續監視更改並更新包含內容的JSP,它就可以做到這一點。但我不知道這是否可行,如果是,它是如何完成的。

此外,IE應用程序和Firefox應支持Web應用程序。

預先感謝您的幫助。

回答

0

你用JavaScript來監視文件系統上的文件的方法不是要走的路。如果將任務分成兩半,會更好:

1)一個簡單的頁面,顯示當前的文件。

var myApp={}; 
var fiveSecondsInterval=5000; 
var myApp.pollServer=function(){ setTimeOut(function(){ 
/* retrieve the current data */ 
if(conditionIsNotMet) myApp.pollServer(); 
}, fiveSecondsInterval)} 

因此一些條件沒有被滿足,myApp.poll將調用自身的:這將通過的setTimeout() - 功能 https://developer.mozilla.org/en-US/docs/DOM/window.setTimeout

形式通常實現通過簡單的投票成爲可能間隔五秒鐘。

2)服務器上的端點,您持有您的數據。所以每次調用該端點時,頁面都會提供文件的當前內容/數據。

一個更復雜的解決方案將包括服務器推送技術http://en.wikipedia.org/wiki/Push_technology

http://en.wikipedia.org/wiki/Reverse_Ajax

http://www.ibm.com/developerworks/web/library/wa-cometjava/

+0

我明白你的意思,並已經成功實施使用長輪詢它。但爲了提高知名度,我想知道我建議的方法有什麼問題。謝謝。 – CCGooner 2013-05-01 11:05:45

+0

「相反,如果它可以寫入本地文件,而JSP文件中的javascript方法會不斷監視變化並更新JSP內容,那麼它就會成功。」 JavaScript在瀏覽器中無法觀看本地文件系統。這將是一個安全風險。另一方面,如果你通過Java/Jsp告訴服務器來提供文件,可以假設你打算做這樣的事情。 – 2013-05-01 15:18:58