我有一个测试 django 应用程序。
在一个页面中,测试向所有用户显示相同的问题。
我希望当用户正确回答时,向其他活动用户的浏览器发送信号以刷新到下一个问题。
我一直在学习 django 中的信号,我学习与它们一起工作,但我现在不知道如何将“刷新信号”发送到客户端浏览器。
我认为它可以使用 javascript 代码来检查某个值(实际问题)是否更改以及更改是否重新加载页面,但我不知道这种语言并且我发现的信息很混乱。
有谁能够帮我?
非常感谢。
我有一个测试 django 应用程序。
在一个页面中,测试向所有用户显示相同的问题。
我希望当用户正确回答时,向其他活动用户的浏览器发送信号以刷新到下一个问题。
我一直在学习 django 中的信号,我学习与它们一起工作,但我现在不知道如何将“刷新信号”发送到客户端浏览器。
我认为它可以使用 javascript 代码来检查某个值(实际问题)是否更改以及更改是否重新加载页面,但我不知道这种语言并且我发现的信息很混乱。
有谁能够帮我?
非常感谢。
There is no existing way to send a event from server to browser. But you can get your web page polling your server periodically (say every 5 seconds).
The code in javascript/jquery could be like the following
setInterval(function(){
$.post("your_ajax_handler_url/is_answerd", userId, function(xhr){
if(xhr.responseText == "answered"){
location.reload(true);
}
}
}, 5000);
这根本不是 Django 中的信号的用途。django 中的信号是服务器端钩子,允许您在某些事件发生时在服务器上执行任务。
要向浏览器“发送刷新”,您需要使用服务器推送方法,例如Comet。或者,您可以让您的客户定期轮询服务器以查找更新。
这里有一些链接:
What you need are coment(http://en.wikipedia.org/wiki/Comet_%28programming%29) and tornado(http://www.tornadoweb.org/)