JavaScript location.reload()在一定时间后循环停止同步,为什么?
我一直在尝试向原始网站php添加一些代码,这样会有一个图像显示25秒,然后它消失,下一个是显示,然后它消失等等 在我的macbook上,当使用当前代码进行测试时(见下文),一切似乎都很好,但是在酒吧的大屏幕上,它开始重新加载同步(如果有意义的话,我不希望它在循环中) 因此,现在发生的是,显示的最后一个图像消失,然后显示第一个元素(另一个脚本),几秒钟后重新加载页面。重新加载应该在最后一个图像隐藏后立即进行JavaScript location.reload()在一定时间后循环停止同步,为什么?,javascript,location,reload,Javascript,Location,Reload,我一直在尝试向原始网站php添加一些代码,这样会有一个图像显示25秒,然后它消失,下一个是显示,然后它消失等等 在我的macbook上,当使用当前代码进行测试时(见下文),一切似乎都很好,但是在酒吧的大屏幕上,它开始重新加载同步(如果有意义的话,我不希望它在循环中) 因此,现在发生的是,显示的最后一个图像消失,然后显示第一个元素(另一个脚本),几秒钟后重新加载页面。重新加载应该在最后一个图像隐藏后立即进行 <script> function displayAds() {
<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怎么办?它可能更不准确,因为计时仅以秒为单位,并且在刷新时会有可变的网络延迟。整个事情会保持同步,但这似乎是一个相当严厉的做法。每次刷新时,用户也会被中断