gpt4 book ai didi

servlets - 从 servlet 发送实时数据

转载 作者:行者123 更新时间:2023-12-02 05:00:14 25 4
gpt4 key购买 nike

我正在开发一个 web 应用程序,其中我有一个恒定的数据流,每 5 秒左右在 java servlet 中接收一次数据(从另一个应用程序编写的文件中读取)。我想将这些数据推送到一个 html 页面上并用 javascript 读取它,这样我就可以在 d3 库中绘制它。

目前我正在使用一个 javascript 函数,它每 5 秒调用一次 servlet 的“doGet”函数。我担心这会产生大量开销,或者它可以更有效地执行。我知道也可以运行“response.setIntHeader("Refresh", 5);"从 servlet。

还有其他更好的方法吗?

在此先感谢您的帮助!

最佳答案

短轮询目前可能是解决您描述的问题的最常用方法

如果你能应付几秒钟的通知延迟,那么短轮询就非常简单,这里是一个基本的例子:

在页面加载时,在您的 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
}
});
}

关于servlets - 从 servlet 发送实时数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17032497/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com