簡體   English   中英

如何在EJS文件中使用setInterval?

[英]How to use setInterval in EJS file?

我在EJS文件中使用setInterval時遇到問題,該文件是我的nodejs應用程序(帶有Express)的一部分。 我創建了函數getRandomSubarray ,該函數從array中隨機選擇圖像的子集。 我想每三秒鍾更改一次此子集。 這是我的代碼中有問題的部分:

<%setInterval(function(){%> <%RandomSubrecipesImg=tools.getRandomSubarray(recipesImg,4)%>
<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是一個客戶端函數,確實需要呈現。

准備數據服務器端,並在init請求中發送所有內容,然后啟動setInterval客戶端並從您的API-端點獲取“新”數據。 可以通過AJAX或WebSockets完成。

或者,您可以設置一個WebSocket並將“新”數據推送到所有客戶端。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM