2013-04-30 56 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