我在这个网站上找到了一个js延时的示例代码片段。当我运行js调试时(点击按钮后),一切工作正常。每次更新都会在适当的延迟后显示在页面上。但当我删除调试并让脚本运行(点击按钮后)时,它就像运行所有代码一样,只给出最后一次更新。我也尝试了函数setTimeout(),但同样的事情发生了。当我单独测试时间延迟代码时(没有其他代码),它工作正常。
这是否与javascript的异步性有关?如果其他人都在使用时间延迟代码,我一定是漏掉了什么......那可能是什么?
下面的代码。
id="lottoNbr" style="margin-left:40px;" onclick="getRandom(8,2)" alt="dollar>signs"> click
上面是点击事件,下面是javascript。
function getRandom(y1, z1) {
var y2=y1; //this is the maximum random number generated
var z2 = z1; // determined which game is being played
var choice, choice1;
var i, count;
//f = setInterval(rNbr,50);
/* pick 10 numbers from 1 to 9 slowly and return the last value to the screen three times*/
function rNbr() {
choice = 1 + (Math.floor(Math.random() * y2));
choice1 = choice.toString();
gameName();
}
function sleep(milliseconds) {
const date = Date.now();
let currentDate = null;
do {
currentDate = Date.now();
} while (currentDate - date < milliseconds);
}
function gameName() {
switch(z2) {
//case 2 means big three game, case 3 meand giant 4 game, etc
case 2:
if (i == 0) {
document.getElementById("3lottoNbr1").innerHTML = choice1;
} else if (i == 1) {
document.getElementById("3lottoNbr2").innerHTML = choice1;
} else {
document.getElementById("3lottoNbr3").innerHTML = choice1;
}
break;
case 3: //giant 4
if (i == 0) {
document.getElementById("4lottoNbr1").innerHTML = choice1;
} else if (i == 1) {
document.getElementById("4lottoNbr2").innerHTML = choice1;
} else if (i == 1) {
document.getElementById("4lottoNbr3").innerHTML = choice1;
} else {
document.getElementById("4lottoNbr4").innerHTML = choice1;
}
break;
}
}
generate random numbers spin style in each of the game windows
setTimeout(rNbr, 500);
for(i=0; i<=z2; i++) {
for(count = 0; count <= 2; count++) {
rNbr();
document.getElementById("proof").innerHTML = count;
sleep(2000);
}
sleep(1000);
}
}
</script>
在网站上发现了这个提示。
PHP部分在页面加载时只执行一次。看看源代码>(右击页面,"显示源代码"),你会看到分配的值>是静态的,因为它是在页面加载到浏览器之前用PHP生成的。>请记住,Javascript和PHP是在不同的上下文中执行的。PHP > >服务器端,Javascript > 客户端。
一个小小的帮助来解决你的问题。http:/www.w3schools.comajax.
添加 window.addEventListener("onload", f())。当页面加载完毕后 添加onloaded事件监听器和要执行的功能。 不在主体加载事件期间。