2013-04-16 96 views
3

我打算开发我的第一个SPA作为一个实验。我有一个可以在单个页面中工作的交互式论坛平台。通知和所有这些奇特功能包括在内。交互式单页应用程序

多年来,我在服务器端和AJAX上开发了许多使用PHP的Web应用程序。问题是,这怎么能适用于我的情况(或类似的情况)?用户必须登录,他应该收到更新,考虑内容(新的回复,新的主题和清单过去)。我认为这个标准是要求 - 反应,而且我认为这不是这种情况。

用户和服务器之间的连接必须是持久的。如果我要制作一个长轮询ajax应用程序,那么为什么我应该考虑单页面应用程序?服务器必须保存已连接用户的列表并将更新推送给它们(如node.js,socket.io等)。这些技术似乎是网络开发领域的新兴技术。

我的问题是什么标准? Twitter如何实现,Facebook如何实现,Gmail如何实现,还有其他内容......我认为像Knockout.js,Sammy.js,Backbone,Underscore和其他技术。这些都很棒,我可以处理他们。服务器呢?那个着名的“实时”网络呢?

以上示例的任何策略建议都很有用并且可以接受。

提前致谢,甚至烦恼读这个。

+0

这更是一个论坛帖子比SO问题。 – Vector

+0

那么这仍然是一个问题。我需要一个答案。我们可以讨论这个问题的好坏,我只需要这样做的标准方法(或者最适用)。 – nLamprok

回答

3

如果你问什么也存储状态的实时应用程序的标准,那么没有一个。有许多方法可以让猫变皮。

在准系统端,Socket.io会抽象出你是否使用AJAX long-polling或websockets。 (不支持WebSockets的浏览器会自动切换到AJAX长轮询)

“请求/响应”模式是不通过HTTP,它使用事件和听众的pub/sub模型已经结束了的WebSockets。例如,服务器端的监听器会在其twitter api连接中检测到新的推文,并通过websockets为客户端套接字监听器广播事件,然后实时更新DOM,并收到新的信息websockets ....... 这个与事件和监听器的套接字通信是双向的。我会粘贴一些代码,但我不在我的机器上,它有我的套接字代码,并且只需使用socket.io就可以使用谷歌搜索功能,Express将向您展示绳索。

编辑:“标准方式”是服务器端的Socket.io/Express,客户端有Backbone/Socket.io。

对Trello实时堆栈的优秀架构描述由雾溪:http://blog.fogcreek.com/the-trello-tech-stack/

+0

我很高兴为您解答。对于发展中的世界来说,新技术应该不是一种风险吗? (这些框架中的大多数都非常新,而且它们工作得很好) – nLamprok