如何更新当前页面而不使用节点刷新它?

时间:2015-09-06 02:07:53

标签: angularjs node.js websocket socket.io mean-stack

我尝试使用MEAN堆栈创建类似于Facebook主页的网页。 因此,当您添加新帖子时,该页面会添加帖子而不刷新它。如果我删除帖子,页面将删除帖子而不刷新页面。

我应该使用Ajax,Socket io等吗?不确定实施它的最佳做法是什么。

如果你有一个有效的例子,那就太好了。

由于

2 个答案:

答案 0 :(得分:1)

您要求的是一种称为服务器推送的情况,您希望服务器能够通知打开的网页有关某种更改,以便页面中的Javascript可以更新页面的显示而无需重新加载

现代浏览器实现服务器推送的常用方法是将浏览器网页的webSocket连接回到服务器。此webSocket连接将保持打开状态,服务器可以随时向网页发送消息(宣布新帖子或删除的帖子),然后网页中的Javascript可以相应地更新显示。

在node.js和所有浏览器中运行的webSocket的常见实现是您提到的socket.io库。它在webSockets之上添加了一些有用的功能,例如自动重新连接和简单的消息传递系统。

另一种效率较低的方法是让每个网页向服务器发送一个重复的ajax调用(比如每分钟),询问最近发生了什么变化。但是,由于这导致许多ajax调用没有任何变化,这最终会降低服务器负载和带宽使用效率。

答案 1 :(得分:0)

SocketStream是一个很好的解决方案: https://github.com/socketstream/socketstream

有很多例子。这需要一些时间。