如何让setInterval定时脚本先立即执行一次再按5秒间隔重复运行
实现方法
你原有代码本身有个隐性问题:setInterval参数里写的function Run(){}是函数表达式,这个Run只在回调函数内部作用域生效,全局环境下根本访问不到,所以你写在body标签上的onload="Run()"实际会触发「函数未定义」报错,根本不会执行。
要实现启动立刻执行一次、之后每5秒重复执行的效果,只需要把更新文本的逻辑抽成独立函数,页面加载时先手动调用一次,再启动定时循环即可,修正后的完整代码如下:
<body onload="init()"> <p id="Text" style="text-align:right; font-size: 100%; font-weight: bold; font-style: italic; color: black; font-family:poppins;"> </p> <script> const down = document.getElementById('Text'); const textArr = [ "\"The end of the liver and the beginning of reading.\"", "\"The most straight geniuses intent lemur sand,\"", "\"Passim abandonment to fashion,\"", ]; // 抽离独立的文本更新逻辑 function updateRandomText() { down.innerHTML = textArr[Math.floor(Math.random() * textArr.length)]; } function init() { // 初始化时立刻执行一次,无初始延迟 updateRandomText(); // 启动5秒间隔的定时循环 setInterval(updateRandomText, 5000); } </script> </body>
小提示:如果后续需要清除定时器,可以把
setInterval的返回值存成变量,调用clearInterval(变量名)即可停止循环。
内容的提问来源于stack exchange,提问作者devtoform
相关产品推荐
相关产品推荐

