0

我有一个DetailView渲染对象的详细信息的地方models.Auction,包括 expires 参数(jquery.countdown用于倒计时时间和完成后的触发事件)。

这是倒计时和完成事件的代码:

<script>
$('#clock').countdown('{{ auction.get_time_left }}', function(event) {
      $(this).html(event.strftime('%D {% trans "day/days" %} %H:%M:%S'));
    }).on('finish.countdown', function(){
  setTimeout(function(){ location.reload()}, 1500);
 });
</script>

在视图中,我检查 if: if datetime.now() >= context['auction'].expires:,然后渲染一个不同的模板;

但是由于某些原因,它location.reload()不会检查该条件(跳过它)并呈现相同的模板(时间已过期)。
PS我也试过在终端打印一些东西(但它也跳过了打印)

4

2 回答 2

0

默认情况下,该reload()方法从缓存重新加载页面,但您可以通过将 forceGet 参数设置为 true 来强制它从服务器重新加载页面:

location.reload(true).
于 2016-11-22T12:23:30.353 回答
0

我忘记将秒数传递给 jquery 倒计时(只有天、小时、分钟),所以这就是视图中的计算与倒计时结束不匹配的原因。

于 2016-11-22T12:30:20.630 回答