Search code examples
djangodjango-signalspage-refresh

Django refresh page if change data by other user


I have a test django app.

In one page the test show the same question to all users.

I'd like that when a user answers correctly, send a signal to other active user's browser to refresh to the next question.

I have been learning about signals in django I learning work with them but I don't now how send the "refresh signal" to client browser.

I think that it can do with a javascript code that check if a certain value (actual question) change and if change reload the page but I don't know this language and the information that I find was confused.

Can anybody help me?

Many Thanks.


Solution

  • 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);