JavaScript location.reload()在一定时间后循环停止同步,为什么?

JavaScript location.reload()在一定时间后循环停止同步,为什么?,javascript,location,reload,Javascript,Location,Reload,我一直在尝试向原始网站php添加一些代码,这样会有一个图像显示25秒,然后它消失,下一个是显示,然后它消失等等 在我的macbook上,当使用当前代码进行测试时(见下文),一切似乎都很好,但是在酒吧的大屏幕上,它开始重新加载同步(如果有意义的话,我不希望它在循环中) 因此,现在发生的是,显示的最后一个图像消失,然后显示第一个元素(另一个脚本),几秒钟后重新加载页面。重新加载应该在最后一个图像隐藏后立即进行 <script> function displayAds() {

我一直在尝试向原始网站php添加一些代码,这样会有一个图像显示25秒,然后它消失,下一个是显示,然后它消失等等

在我的macbook上,当使用当前代码进行测试时(见下文),一切似乎都很好,但是在酒吧的大屏幕上,它开始重新加载同步(如果有意义的话,我不希望它在循环中)

因此,现在发生的是,显示的最后一个图像消失,然后显示第一个元素(另一个脚本),几秒钟后重新加载页面。重新加载应该在最后一个图像隐藏后立即进行

<script>
    function displayAds() {
        $("#appjs").remove();           // Haal het app.js script weg zodat deze niet meer draait
        $(".container, .row").hide();   // Verberg de content van het klassement/scoreboard
        $("#ad-slides").show();         // Laat de container met ad-slides zien
        $("#slide-een").show();         // Laat de eerste slide zien

        setTimeout(displayAd2, 25000) // Roep de functie voor het laten zien van slide twee aan

    }

    // Deze functie laat, wanneer aangeroepen, de tweede ad slide zien
    function displayAd2() {
        $("#slide-een").hide();     // Verberg de eerste slide
        $("#slide-twee").show();    // Laat de tweede slide zien

        setTimeout(displayAd3, 25000) // Roep de functie voor het laten zien van slide drie aan
    }

    function displayAd3() {
        $("#slide-twee").hide();    // Verberg de tweede slide
        $("#slide-drie").show();    // Laat de derde slide zien

        setTimeout(hideAds, 25000); // Roep hideAds aan na 25 sec om de ads te verbergen en dus het klassement te tonen
    }

    function hideAds() {
        $(".ads").hide();
        $("#ad-slides").hide();
        var assetsssss = "{{ asset('js/app.js') }}"; // Dit is het app js script nu
        $("body").append('<script src="'+assetsssss+'" id="appjs"></script\>'); // Voeg het app js script toe onderaan de pagina zodat deze weer draait
        $(".container, .row").show();// Maak de score content weer zichtbaar

        //setTimeout(displayAds, 90000)  // Begin de loop weer opnieuw na 90 seconden
        location.reload(true);
    }

    // Hier begint het script
       $(document).ready( function() {
       $("#ad-slides").hide();  // Verberg de ad-slides container
       $(".ads").hide();        // Verberg alle ad slides

       setTimeout(displayAds, 90000); // Roep na 90 sec van het laden van de pagina de functie voor het tonen van de eerste slide aan
    });
</script>

函数displayAds(){
$(“#appjs”).remove();//Haal het app.js脚本weg zodat deze niet meer draait
$(“.container.row”).hide();//Verberg de content van het klassement/记分板
$(“#广告幻灯片”).show();//Laat de container met广告幻灯片zien
$(“#slide een”).show();//Laat de eerste slide zien
setTimeout(DisplayAD2200)//Roep de functie voor het laten zien van slide twee aan
}
//德兹·福斯蒂·拉特、温尼尔·安杰罗彭、德·特威德和塞恩
函数displayAd2(){
$(“#幻灯片een”).hide();//Verberg de eerste幻灯片
$(“#幻灯片斜纹布”).show();//Laat de tweede幻灯片
setTimeout(displayad3200)//Roep de functie voor het laten zien van slide drie aan
}
函数displayAd3(){
$(“#幻灯片斜纹布”).hide();//Verberg de tweede幻灯片
$(“#幻灯片驱动器”).show();//Laat de derde slide zien
setTimeout(hideAds,25000);//Roep hideAds和25秒om de ads de verbergen en dus het klassement te tonen
}
函数hideAds(){
$(“.ads”).hide();
$(“#广告幻灯片”).hide();
var assetssss=“{{asset('js/app.js')}}”;//Dit是het app js脚本nu
$(“body”).append(“”);//Voeg het app js script toe onderaan de pagina zodat deze weer draait
$(“.container.row”).show();///Maak de score内容在zichtbaar中
//setTimeout(displayAds,90000)//开始在opnieuw na 90秒后进行循环
位置。重新加载(true);
}
//海尔贝金特脚本
$(文档).ready(函数(){
$(“#广告幻灯片”).hide();//广告幻灯片容器
$(“.ads”).hide();//Verberg alle广告幻灯片
setTimeout(displayAds,90000);//Roep na 90秒van het laden van de pagina de functie voor het tonen van de eerste slide aan
});
所以,我不知道为什么它在一段时间后开始循环关闭同步。
提前感谢您的帮助。

Javascript计时器不能保证在您指定的时间准确启动。他们随后尽快开火


要进行深入阅读,请查看MDN文档:

问题是每次重新加载
locación时,您都在执行一个无限重新加载循环。重新加载(true)
称为页面刷新,所有脚本都将重新加载,然后再加载
displayAds
displayAds2
等再次执行,因为它们都是可链接执行的,因为
setTimeout
并且当您重新加载页面时,函数
$.document.ready
再次执行。这就是为什么您处于重新加载循环中的原因

一个?@OlleDejong怎么办?它可能更不准确,因为计时仅以秒为单位,并且在刷新时会有可变的网络延迟。整个事情会保持同步,但这似乎是一个相当严厉的做法。每次刷新时,用户也会被中断