我试图使用MEAN stack创建一个类似Facebook主页的网页。因此,当您添加新帖子时,页面将添加该帖子而不刷新它。如果我删除帖子,页面也会删除帖子而不刷新页面。
我应该使用Ajax, Socket io,或等?我不确定实现它的最佳实践是什么。
如果你有一个工作的例子,那就太好了。
谢谢
你要求的是一种叫做服务器推送的情况,你希望服务器能够通知一个打开的网页关于某种变化,这样页面中的Javascript就可以更新页面的显示而无需重新加载它。
在现代浏览器中实现服务器推送的通常方式是从浏览器的网页返回到服务器的webSocket连接。然后,这个webSocket连接将保持打开状态,服务器可以随时向网页发送消息(宣布新帖子或删除帖子),网页中的Javascript可以相应地更新显示。
在node.js和所有浏览器中工作的webSocket的一个常见实现是socket。你提到的IO库。它在webSockets的基础上增加了一些有用的功能,如自动重新连接和一个简单的消息传递系统。
另一种效率较低的方法是每个网页发送一个循环的ajax调用(比如每分钟)到服务器询问最近发生了什么变化。但是,由于这会导致许多ajax调用没有任何变化,因此最终可能会大大降低服务器负载和带宽使用的效率。
SocketStream是一个很好的解决方案:https://github.com/socketstream/socketstream
有很多例子。这需要一些时间。