使用JavaScript进行服务器轮询

使用JavaScript进行服务器轮询,javascript,jquery,ajax,polling,Javascript,Jquery,Ajax,Polling,使用JavaScript轮询服务器的一些好做法是什么 需要快速刷新数据的应用程序?我使用jQuery作为前端,使用JavaSpring框架作为后端 刷新数据的示例可能是快速更新(每1秒更新一次)的项目列表。您可能希望每隔一秒左右轮询服务器。然后,服务器可以近乎实时地向浏览器发出指令 你也可以考虑替代上面的内容,在不增加轮询频率的情况下减少等待时间。 引述: 长轮询Comet技术是一种优化传统轮询以减少延迟的技术 传统轮询以固定的间隔向服务器发送XMLHttpRequest。例如,每15秒打开一个

使用JavaScript轮询服务器的一些好做法是什么 需要快速刷新数据的应用程序?我使用jQuery作为前端,使用JavaSpring框架作为后端

刷新数据的示例可能是快速更新(每1秒更新一次)的项目列表。

您可能希望每隔一秒左右轮询服务器。然后,服务器可以近乎实时地向浏览器发出指令

你也可以考虑替代上面的内容,在不增加轮询频率的情况下减少等待时间。 引述:

长轮询Comet技术是一种优化传统轮询以减少延迟的技术

传统轮询以固定的间隔向服务器发送
XMLHttpRequest
。例如,每15秒打开一个新的
XMLHttpRequest
,接收即时响应,然后关闭连接

长轮询将向服务器发送请求,但在有响应可用之前,不会将响应返回给客户端。一旦由于客户端接收到响应或请求超时而关闭连接,就会启动新连接。结果是延迟显著减少,因为服务器通常在准备返回信息以返回到客户端时建立了连接

除上述内容外,我还建议您查看以下堆栈溢出帖子的公认答案,以了解长轮询技术的详细描述:

I使用长轮询或推送。退房

Comet是一种可伸缩的基于HTTP的事件路由总线,它使用一种称为Comet的Ajax推送技术模式。“Comet”一词是Alex Russell在他的《Comet后:浏览器的低延迟数据》中创造的

他们有一个页面解释了如何使用Spring实现这一功能:


从2018年起,您应使用带有promise语法的fetch函数:

<script type="text/javascript">
setInterval(function(){
  fetch("your_serverside_script.php") // Any output from the script will go to the "result" div
  .then(response => response.text())
  .catch(error => document.getElementById("result").innerHTML = error)
  .then(response => document.getElementById("result").innerHTML = response)
}, 1000); // Poll every 1000ms
</script>

<div id="result">result will appear here</div>

setInterval(函数(){
fetch(“your_serverside_script.php”)//脚本的任何输出都将转到“result”div
.then(response=>response.text())
.catch(错误=>document.getElementById(“结果”).innerHTML=error)
.then(response=>document.getElementById(“结果”).innerHTML=response)
}, 1000); // 每1000毫秒投票一次
结果将显示在此处

快速定义。每分钟一次?每十秒钟一次?每秒钟一次?什么样的数据?每1秒和数据将是文本,可能是一些非常少量的html