Javascript 如何在不重新加载页面的情况下更新EJS模板数据
我有一个EJS模板,它从服务器获取一个文件userData 如何在不重新加载页面的情况下实现模板中用户数据的刷新 在应用程序的其他部分,我已成功地将数据提交到服务器,而无需通过Ajax post方法重新加载页面。Javascript 如何在不重新加载页面的情况下更新EJS模板数据,javascript,jquery,ajax,ejs,Javascript,Jquery,Ajax,Ejs,我有一个EJS模板,它从服务器获取一个文件userData 如何在不重新加载页面的情况下实现模板中用户数据的刷新 在应用程序的其他部分,我已成功地将数据提交到服务器,而无需通过Ajax post方法重新加载页面。 但无法找到在不重新加载页面的情况下在模板中呈现更新数据的方法 EJS模板 当浏览器访问URL/tasks 此片段只是应用程序的一部分,用于演示其结构。 <%userData.forEach(function(project){%> <div class=&q
但无法找到在不重新加载页面的情况下在模板中呈现更新数据的方法
EJS模板
当浏览器访问URL
/tasks
此片段只是应用程序的一部分,用于演示其结构。
<%userData.forEach(function(project){%>
<div class="project">
<div class="projectHeader">
<div class="projectTitle">
<span>
<a data-toggle="modal" data-target="#editDeadLineModal">
<i id="setListDeadline" data-id="<%=project.id%>" class="far fa-calendar-alt fa-2x" data-toggle="tooltip" data-placement="top" title="Set Deadline"></i>
</a>
</span>
<%if(project.deadline == null){%>
<h5 class="projectName"><%=project.name%></h5>
<%}else{%>
<% var deadline = project.deadline.toDateString()%>
<h5 data-toggle="tooltip" data-placement="top" title="Deadline <%=deadline%>" style="align-items: center;" class="projectName">
<%=project.name%>
</h5>
<%}%>
</div>
</div>
</div>
您希望服务器向客户端浏览器发送消息,如实时实时应用,如聊天,需要从服务器到客户端的web套接字或http池,请检查socket.io以获取示例和消息docs@MedetTleukabiluly谢谢你的提示(现在就找这个选项),但从技术上讲,只有在这种特殊情况下使用Ajax或Jquery,才能实现ejs模板的刷新而不重新加载吗?浏览器不知道何时更新,这是我理解的问题-
$(“.project”)。在('click',function(){refresh page code}
不是更新的情况。是吗?既然您已经做了一个ajax请求来更新数据,那么您可以在成功后执行另一个ajax调用,例如$.post(“更新”,data).done(function(){$.get(“tasks”).done(function(data){render data})}
。您可以使用异步/等待或单独定义get函数来提高可读性
app.get("/tasks", async (req, res) => {
const results = await pool.query(`SELECT * FROM projects`);
res.render("tasks", {
userData: results,
})
})