Javascript 停止刷新django模板中的js文件

Javascript 停止刷新django模板中的js文件,javascript,django,ajax,django-rest-framework,django-templates,Javascript,Django,Ajax,Django Rest Framework,Django Templates,我已经用Django模板创建了倒计时计时器,当HTML页面上的页面刷新数据是更新时,它会显示在HTML模板上,但它也会重置倒计时计时器。我不希望有任何方法停止刷新脚本或更新数据而不刷新 app.js var count = 8 var counter = setInterval(timer , 1000) function timer(){ count = count-1 if (count <= 0) { clearInterval(counte

我已经用Django模板创建了倒计时计时器,当HTML页面上的页面刷新数据是更新时,它会显示在HTML模板上,但它也会重置倒计时计时器。我不希望有任何方法停止刷新脚本或更新数据而不刷新

app.js

var count = 8
var counter = setInterval(timer , 1000)

function timer(){
    count = count-1
    if (count <= 0)
    {
        clearInterval(counter);

        return window.location.href = urlFromDjango
    }
    document.getElementById("timer").innerHTML= count + " secs";
}
var计数=8
var计数器=设置间隔(计时器,1000)
函数计时器(){
计数=计数-1

如果(count您需要将该信息存储在某个位置,因此即使刷新计数信息也不会丢失。一个简单的解决方案是将其存储在Cookie或本地存储之类的位置。以下是一个示例:

var count = parseInt(localStorage.getItem("count-" + window.location.pathname)) || 8
var counter = setInterval(timer , 1000)

function timer(){
    count = count-1
    localStorage.setItem("count-" + window.location.pathname, count)
    if (count <= 0){  
        clearInterval(counter);
        return window.location.href = urlFromDjango
    }
    document.getElementById("timer").innerHTML= count + " secs"
}
var count=parseInt(localStorage.getItem(“count-”+window.location.pathname))|8
var计数器=设置间隔(计时器,1000)
函数计时器(){
计数=计数-1
localStorage.setItem(“计数-”+window.location.pathname,计数)

如果(count Updated!但它仍然没有存储剩余时间嗯,您可以在浏览器中检查您的本地存储以查看是否存储了任何内容吗?另外,您可以查看控制台中是否有任何错误吗?更新上述代码后,它没有显示任何计时器,它直接重定向到结果页My bad。我忘记了使用本地存储,它将返回字符串而不是int。您需要显式地将其类型转换为整数。我已经更新了答案。
var count = parseInt(localStorage.getItem("count-" + window.location.pathname)) || 8
var counter = setInterval(timer , 1000)

function timer(){
    count = count-1
    localStorage.setItem("count-" + window.location.pathname, count)
    if (count <= 0){  
        clearInterval(counter);
        return window.location.href = urlFromDjango
    }
    document.getElementById("timer").innerHTML= count + " secs"
}