我正在使用Django和JQuery。我基本上想在游戏开始时刷新团队的页面(游戏是手动启动的,所以准确的时间是未知的)。所以我向服务器发送一个ajax请求,询问游戏是否已经开始,但是我必须不断地这样做,所以我不确定什么是更好的: 1.有一个javascript while循环,不断发送请求 2.在服务器端有一个等待响应的while循环,直到游戏开始。
或许还有其他更好的方法?
谢谢!
答案 0 :(得分:1)
您指定的方法1称为轮询,它将生成多次对服务器的调用,因此不建议这样做。
方法2是不可行的,因为你有时间。
正确地(有效地)执行此类操作是通过 WebSockets 或来自服务器的某种推送通知。很少有图书馆
http://socket.io/
https://github.com/SignalR/SignalR/wiki/Faq
如果这有帮助你就不要忘记将其标记为答案:)
答案 1 :(得分:0)
轮询是最简单的选择,因为它可以与普通的Django系统一起使用。
还有其他一些技术可以保持连接打开并向客户端(浏览器)发送消息,例如websockets或服务器发送事件(sse),但这些技术需要基础设施中的其他组件,而不仅仅是Django。
你无法让服务器等待,浏览器和前端网络服务器通常都有时间限制来检测死连接,这样你的连接就会在游戏开始前终止。
答案 2 :(得分:0)
您的服务器知道游戏何时开始,如下午5点?告诉浏览器的JavaScript在4:59:40开始投票