Ajax 如何在django中实现倒计时
我只需要一个大概的想法。 我正在django开发一个体育应用程序。此应用程序需要测量时间并将其显示给用户。在倒计时期间,我还需要执行一些可能发生的“操作”。这意味着根据操作类型调用另一个视图,标记此操作并使用计时器重定向回原始视图,用户现在可以在其中看到更改。Ajax 如何在django中实现倒计时,ajax,django,countdown,Ajax,Django,Countdown,我只需要一个大概的想法。 我正在django开发一个体育应用程序。此应用程序需要测量时间并将其显示给用户。在倒计时期间,我还需要执行一些可能发生的“操作”。这意味着根据操作类型调用另一个视图,标记此操作并使用计时器重定向回原始视图,用户现在可以在其中看到更改。 我想我不能在服务器端(django)实现倒计时。我必须用JavaScript来实现这一点,但是。。。每次用户执行操作时,倒计时都会停止。我必须使用AJAX吗?难道没有更好的方法来实现这一点吗。谢谢您肯定需要一些javascript来完成倒
我想我不能在服务器端(django)实现倒计时。我必须用JavaScript来实现这一点,但是。。。每次用户执行操作时,倒计时都会停止。我必须使用AJAX吗?难道没有更好的方法来实现这一点吗。谢谢您肯定需要一些javascript来完成倒计时。就像这个- 然后,任何发生的操作,您都可以对django URL(视图)执行基本的ajax调用,以更新数据库中的任何值或您需要对请求执行的任何其他操作 当倒计时停止时,您可能会将一些剩余时间值记录到django中,然后当您需要继续计时时,您可以再次对某个视图执行ajax调用,该视图将返回开始倒计时的时间,并且您可以使用剩余时间重新构建倒计时计时器 model.py
class chek(models.Model):
date = models.DateTimeField(auto_now_add=False, blank=True, null=True)
views.py
def jaya(request):
ob=chek.objects.get(id=2)
return render(request,'jaya.html',{'ob':ob})
使用这样的脚本
<script>
function makeTimer() {
var endTime=new Date({{ ob.date|date:"U" }} * 1000);
endTime = (Date.parse(endTime) / 1000);
var now = new Date();
now = (Date.parse(now) / 1000);
var timeLeft = endTime - now;
var days = Math.floor(timeLeft / 86400);
var hours = Math.floor((timeLeft - (days * 86400)) / 3600);
var minutes = Math.floor((timeLeft - (days * 86400) - (hours * 3600 )) / 60);
var seconds = Math.floor((timeLeft - (days * 86400) - (hours * 3600) - (minutes * 60)));
if (hours < "10") { hours = "0" + hours; }
if (minutes < "10") { minutes = "0" + minutes; }
if (seconds < "10") { seconds = "0" + seconds; }
$("#days").html(days + "<span>Days</span>");
$("#hours").html(hours + "<span>Hours</span>");
$("#minutes").html(minutes + "<span>Minutes</span>");
$("#seconds").html(seconds + "<span>Seconds</span>");
}
setInterval(function() { makeTimer(); }, 1000);
</script>
函数makeTimer(){
var endTime=新日期({{ob.Date | Date:“U”}}*1000);
endTime=(Date.parse(endTime)/1000);
var now=新日期();
now=(Date.parse(now)/1000);
var timeLeft=endTime-now;
变量天数=数学下限(timeLeft/86400);
var小时=数学楼层((时间间隔-(天*86400))/3600);
var分钟=数学楼层((时间间隔-(天*86400)-(小时*3600))/60);
var秒=数学地板((时间间隔-(天*86400)-(小时*3600)-(分钟*60));
如果(小时<“10”){hours=“0”+小时;}
如果(分钟<“10”){minutes=“0”+分钟;}
如果(秒<“10”){seconds=“0”+秒;}
$(“#天”).html(天+天);
$(“#小时”).html(小时+“小时”);
$(“#分钟”).html(分钟+“分钟”);
$(“#秒”).html(秒+秒);
}
setInterval(函数(){makeTimer();},1000);
html正文
<body class="game_info" data-spy="scroll" data-target=".header">
<div class="col-md-6 col-sm-6 col-xs-12">
<div class="row">
<div class="full">
<div class="right-match-time">
<h2>Next Match</h2>
<ul id="countdown-1" class="countdown">
<li><span id="days"></span>Day </li>
<li><span id="hours"></span>Hours </li>
<li><span id="minutes"></span>Minutes </li>
<li><span id="seconds"></span>Seconds </li>
</ul>
</div>
</div>
</div>
</div>
</div>
下一场比赛
- 一天
- 小时数
- 会议记录
- 秒
您有我们可以看到的示例代码吗?抱歉,这个问题写得不好,但正如我所写的,我需要的只是一个如何实现这一点的一般想法。当然,这正是我在上一次实现的,所以我只是分享了我所做的。