我正在开发骰子应用程序;我正在使用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:好吧,我错过的一件事是结帐...)
谢谢, -范
答案 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()
})