2015-09-06 122 views
-1

我试图创建一个类似于Facebook主页使用MEAN堆栈的网页。 因此,当您添加新帖子时,该页面将添加帖子而不刷新它。如果我删除帖子,则页面将删除帖子而不刷新页面。如何在不使用节点刷新的情况下更新当前页面?

我应该使用Ajax,Socket io还是其他?不确定实施这个的最佳实践是什么。

如果你有一个工作的例子,那将会很棒。

感谢

回答

1

什么是你要求的是一种情况叫做服务器推送,你希望服务器能够通知一个打开的网页有关某种变化使JavaScript中的页面就可以更新显示没有重新加载它的页面。

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

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

另一个效率不高的方法是让每个网页发送一个重复的ajax调用(比如说每分钟)到服务器,询问最近发生了什么变化。但是,由于这会导致很多Ajax调用,而且没有任何变化,这可能最终导致服务器负载和带宽使用效率明显降低。

相关问题