我正在从事一个项目,该项目的一部分向用户显示通知。我有一个用于存储通知的对象,以及一个用于显示通知的表。通知将以正确的格式写入JSON文件,以备后用。
按照目前的情况,对象每隔x秒就会向其发送新的通知,但是实际表仅在页面重新加载后才显示新消息。
一种以编程方式每x秒刷新表中维护的数据的方法。
一种类似webhooks或socket的方法,可用于将新对象直接发送到客户端。
[
{
"Notification": "Limit Exceeded. Event has occurred. Action needed.",
"Time": "19:54:34",
"Date": "Sun Oct 28 2018 "
},
{
"Notification": "Limit Exceeded. Event has occurred. Action needed.",
"Time": "19:54:34",
"Date": "Sun Oct 28 2018 "
}
]
JSON文件开始为空,并且已将通知记录到该文件。通知从此处拉出,并存储在一个空的通知对象中。
<h2 class="page-header">Notifications</h2>
<h2>{{log}}</h2>
<p>Your Latest Notifications can be Found Below.</p>
{{#if notifications}}
<table style="width:100%" border="1">
<tr>
<th>Notification:</th>
<th>Time:</th>
<th>Date:</th>
</tr>
{{#each notifications}}
<tr>
<td>{{[Notification]}}</td>
<td>{{Time}}</td>
<td>{{Date}}</td>
</tr>
{{/each}}
</table>
{{else}}
<h3>No Current Notifications</h3>
{{/if}}
<form method="post" action="/test/notify" id="removeuserform">
<button type="submit" class="btn btn-default">Reload page.</button>
</form>
当然,页面是使用以下行呈现的。
res.render('home', {notifications: notifications});
我在这里研究了很多方法,也很想听听您的意见。我见过人们使用webhook,我见过人们初始化按钮单击,该按钮重定向到同一页面。我无法使用window.reload函数。我见过人们在EJS视图中放置标签,但是我正在使用把手。
当我将新项目推入该对象时,是否可以简单地刷新此通知对象中的数据?您的任何想法都将不胜感激。预先谢谢你。