Servlets 从servlet发送实时数据
我正在开发一个web应用程序,在这个应用程序中,我有一个恒定的数据流,在Javaservlet中每隔5秒左右接收一次(从另一个应用程序编写的文件中读取)。我想将这些数据推送到一个html页面上,并用javascript读取它,这样我就可以在d3库中绘制它的图形 目前,我正在使用一个javascript函数,它每5秒调用servlet的“doGet”函数。我担心这会产生大量开销,或者可能会更有效地执行。 我知道也可以从servlet中运行“response.setIntHeader(“Refresh”,5);” 还有其他更好的方法吗Servlets 从servlet发送实时数据,servlets,web-applications,data-stream,Servlets,Web Applications,Data Stream,我正在开发一个web应用程序,在这个应用程序中,我有一个恒定的数据流,在Javaservlet中每隔5秒左右接收一次(从另一个应用程序编写的文件中读取)。我想将这些数据推送到一个html页面上,并用javascript读取它,这样我就可以在d3库中绘制它的图形 目前,我正在使用一个javascript函数,它每5秒调用servlet的“doGet”函数。我担心这会产生大量开销,或者可能会更有效地执行。 我知道也可以从servlet中运行“response.setIntHeader(“Refres
提前感谢您的帮助 短轮询可能是目前解决您描述的问题最常用的方法 如果您可以处理几秒钟的通知延迟,那么短轮询非常简单,下面是一个基本示例: 在页面加载时,在JS中调用:
setInterval(checkFor, 30000);
上面每30秒调用一个函数checkFor()(显然,您可以将30秒更改为任何时间长度-只需根据您希望用户更新的频率调整上面一行中的30000)
然后,在checkForNotifications函数中,只需对服务器进行ajax调用,询问是否有任何更新-如果服务器说有,则只需使用JS显示警报,如果没有(大多数情况下很可能是这样),则不执行任何操作:
function checkFor(){
$.ajax({
url: "your/server/url",
type: "POST",
success: function( notification ) {
//Check if any notifications are returned - if so then display alert
},
error: function(data){
//handle any error
}
});
}
检查Comed项目:谢谢,我还找到了WebSocket,供其他可能感兴趣的人使用。虽然它不能在所有服务器上运行。请看: