Как использовать setInterval в файле EJS? - PullRequest
0 голосов
/ 20 января 2019

У меня проблема с использованием setInterval в моем EJS-файле, который является частью моего приложения 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 .Ты хоть представляешь, что не так?

1 Ответ

0 голосов
/ 20 января 2019

EJS используется для рендеринга на стороне сервера. Но setInterval - это функция на стороне клиента, которую нужно рендерить.

Подготовьте свои серверы данных и отправьте все в запросе инициализации, затем запустите setInterval на стороне клиента и получите «новые» данные из вашего API - конечной точки. Может быть сделано через AJAX или WebSockets.

Или вы можете настроить WebSocket и передать «новые» данные всем клиентам.

...