我在 EJS 文件中使用 setInterval 时遇到问题,该文件是我的 Nodejs 应用程序(带有 Express)的一部分。我创建了函数 getRandomSubarray,它从数组中随机选择图像子集。我想每三秒更改一次这个子集。这是我的代码中有问题的部分:
<%setInterval(function(){%>
<%RandomSubrecipesImg=tools.getRandomSubarray(recipesImg,4)%><br/>
<div class="navbar-image-box col-sm-3 d-none d-sm-block"><img class="navbar-image" src="<%=RandomSubrecipesImg[0].replace('public',"")%>"></div>
<div class="navbar-image-box col-sm-3 d-none d-sm-block"><img class="navbar-image" src="<%=RandomSubrecipesImg[1].replace('public',"")%>"></div>
<div class="navbar-image-box col-sm-3"><img class="navbar-image" src="<%=RandomSubrecipesImg[2].replace('public',"")%>"></div>
<div class="navbar-image-box col-sm-3 d-none d-sm-block"><img class="navbar-image" src="<%=RandomSubrecipesImg[3].replace('public',"")%>"></div>
<% },3000);%>
在浏览器中我没有收到任何 div。如果删除 setInterval 我在浏览器中有 div 元素,所以我认为 setInterval 有问题。你知道出了什么问题吗 ?
最佳答案
EJS 用于在服务器端渲染事物。但setInterval是一个客户端函数,不需要渲染。
准备数据服务器端并发送初始化请求中的所有内容,然后启动 setInterval
客户端并从 API - 端点获取"new"数据。可以通过 AJAX 或 WebSockets 完成。
或者您可以设置 WebSocket 并将"new"数据推送到所有客户端。
关于javascript - 如何在EJS文件中使用setInterval?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54276357/