javascript - JavaScript location.reload() 在一定时间后循环关闭同步,为什么?
问题描述
我一直在尝试在原始网站 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>
所以,我不知道为什么它会在一段时间后开始循环关闭同步。提前感谢您的帮助。
解决方案
问题是您每次重新加载时都在执行不定式重新加载循环locación.reload(true)
,称为页面刷新,所有脚本都再次加载,然后displayAds
,displayAds2
等等再次执行,因为所有这些都是可链接执行的,因为setTimeout
当您重新加载页面时$.document.ready
它再次执行的功能。这就是为什么您处于重新加载循环中的原因
推荐阅读
- node.js - 我想使用 Cloud Vision API 检测 PDF 文本并从 Google Cloud Storage 获取结果
- python - 如何确保 selenium 不会关闭浏览器?
- java - JavaFX 从 exe 文件中获取图标
- python - 根据给定条件对组合数据进行分组
- css - Tailwind css中带有文本的圆圈
- html - Flexbox - 将元素向右“flex-direction:column”而不使用css中的位置
- php - 在命令模式下运行时出现 PDOException “找不到驱动程序”
- javascript - 如何使用 JSON asp.net MVC 同时发送两个数组以查看
- android - 有没有办法过滤/搜索项目以从 sqlite android 返回列表?
- angular - Angular 10 NgForm