Ajax用于通知服务器上的变量更改

Ajax to notify about variable change on server

本文关键字:变量 用于 通知 服务器 Ajax      更新时间:2023-09-26

我正在使用Django和JQuery。我基本上想在游戏开始时刷新团队页面(游戏邦注:游戏是手动启动的,所以确切的时间是未知的)。所以我发送一个ajax请求到服务器询问游戏是否开始,但我必须不断这样做,所以我不确定什么是更好的:1. 有一个javascript while循环,不断发送请求2. 在服务器端有一个while循环,等待响应直到游戏开始。

或者可能有其他更好的方法?

谢谢!

您指定的方法1称为轮询,它将生成多个对服务器的调用,因此不建议使用。


方法2是不可行的,因为你会超时。正确的方法(有效地)做这类事情是通过WebSockets或某种推送通知从服务器。很少有库
http://socket.io/
https://github.com/SignalR/SignalR/wiki/Faq

如果这对你有帮助,别忘了把它标记为答案:)

你的服务器知道游戏什么时候开始,比如下午5点?告诉浏览器的JavaScript在4:59:40开始轮询

轮询是最简单的选项,因为它可以在普通的Django系统中工作。

还有其他一些技术可以保持连接打开并向客户端(浏览器)发送消息,比如websockets或服务器发送事件(sse),但这些技术需要在基础设施中添加额外的组件,而不仅仅是Django。

你不能让服务器等待,浏览器和前端web服务器通常有时间限制来检测死连接,所以你的连接将在游戏开始前终止。