使用查询集的AJAX加载div

时间:2018-11-15 20:24:01

标签: jquery ajax django

我正在开发骰子应用程序;我正在使用Django(2.1),Bootstrap(4),mySQL,一小段JavaScript,现在使用的是AJAX,这是我一直在努力的地方。我将查询集作为kwarg传递到模板中,然后在其自己的div中将其呈现为“动作日志”(掷骰子的历史)。我以为我可以使用AJAX重新加载该div,但似乎丢失了一些东西。除其他外,我正在使用this stackoverflow question作为参考。

template.html

<div class="container-fluid" id="action_log" style="padding:0">
    ... <!--display actions-->
</div>

<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>    
<script>
    $(function refresh_action_log(){
        $.ajaxSetup ({
            cache: false,
            complete: function() {
                setTimeout(refresh_action_log, 2000);
            }
        });
        $('#action_log').load(document.URL + '#action_log');
    })
</script>

我认为应该发生的是,在2秒钟(2000毫秒)之后,AJAX应该只刷新命名的div。我知道我有一个问题,就是函数最后一行的语法。在上面链接的页面上的注释中,我看到了几种不同的语法,但我无法弄清楚哪种语法正确。

我错过了什么?

(eta:好吧,我错过的一件事是结帐...)

谢谢, -范

1 个答案:

答案 0 :(得分:0)

ajaxSetup用于配置所有ajax调用。我认为这不是您要使用的。我想您想要更接近此的东西:

$(function() {
    function refresh_action_log(){
        var url = document.URL + '#action_log'
        $('#action_log').load(url, function () {
            // When it loads, schedule the next request for 2s later
            setTimeout(refresh_action_log, 2000)
        });
    }
    refresh_action_log()
})