【发布时间】:2013-12-20 21:51:07
【问题描述】:
我正在尝试构建一个脚本集,随机生成一个介于 1 到 6 之间的数字,并仅在浏览器中显示该数字。一开始有可能为间隔设置一个值。我有一个完全符合我要求的代码。唯一的问题是区间不平滑。它以某种方式口吃。 有人知道如何改进随机数显示流畅的代码吗?
<html>
<body>
<p style="font-size: 500; color: red; text-align: center" id="random_number"></p>
<script>
var interval = parseInt(prompt("Intervall [ms]:", ""));
fRandomNumbers(1,6);
window.setInterval(function(){fRandomNumbers(1,6)}, interval);
function fRandomNumbers(min,max)
{
var random_number = Math.floor( Math.random() * ( max - min + 1 ) ) + min;
document.getElementById("random_number").innerHTML = random_number;
}
</script>
</body>
</html>
【问题讨论】:
-
所以我完全理解你,你所说的“口吃”是指间隔似乎不准确?有时它比其他时间等待更长的时间?你用的是什么时间间隔?
-
我尝试了一个 jsfiddle。我注意到有时它看起来可能会卡顿,但那是因为随机生成的数字与原来的数字相同,所以它看起来像是因为缺乏变化而停滞不前。
-
这正是我的意思。有时需要更长的时间才能出现下一个数字。不知怎的有点不规则。我使用 900 毫秒作为间隔。
-
尝试附加到innerHtml(使用+=而不是=)并看到它每次都添加一个数字,但有时它会添加相同的数字。大概就是那个摊位吧。
-
是的,@CoreyOgburn 是对的。您有六分之一的机会连续两次选择相同的数字,而当这种情况发生时,看起来该数字没有改变。
标签: javascript performance setinterval