我有一个测试django app。
在一个页面中,测试向所有用户显示相同的问题。
我希望当用户正确回答时,向其他活跃用户的浏览器发送信号以刷新下一个问题。
我一直在学习django中的信号我和他们一起学习,但我现在不知道如何发送"刷新信号"到客户端浏览器。
我认为它可以使用javascript代码检查某个值(实际问题)是否发生变化,如果更改重新加载页面但我不知道这种语言,而且我发现的信息很混乱。< / p>
有人能帮助我吗?
非常感谢。
答案 0 :(得分:4)
没有现有方法可以将事件从服务器发送到浏览器。但是,您可以定期轮询您的服务器(比如每5秒钟)。
javascript / jquery中的代码可能如下所示
setInterval(function(){
$.post("your_ajax_handler_url/is_answerd", userId, function(xhr){
if(xhr.responseText == "answered"){
location.reload(true);
}
}
}, 5000);
答案 1 :(得分:3)
这完全不是Django中的信号。 django中的信号是服务器端挂钩,允许您在某种情况发生时在服务器上执行任务。
要向浏览器“发送刷新”,您需要使用服务器推送方法,例如Comet。或者,您可以让客户定期轮询服务器以查找更新。
以下是一些链接:
How to implement Server push / long polling / comet using PHP and Javascript
答案 2 :(得分:-1)
你需要的是冥想(http://en.wikipedia.org/wiki/Comet_%28programming%29)和龙卷风(http://www.tornadoweb.org/)