4

我想了解单页应用程序如何工作。保持客户端和服务器同步的单页应用程序

我对SPA的理解是,您在启动时加载数据,并使用ajax调用进行保存等等,并且整个想法是您的模型在客户端上缓存数据,这样您就可以在您的浏览器。

我很困惑客户端如何与服务器更改保持同步。 E.G.如果我有多个用户登录到我的spa并且他们都在进行更改,那么如果我的客户使用缓存数据,我的客户如何知道其他用户已更新人员详细信息?

我的猜测是,类似的事情需要发生服务器端更新客户端的变化。这是存在的还是我误解了某些东西?

任何帮助或指向额外的信息将不胜感激。

预先感谢您。

+2

此[文章](http://www.codeproject.com/Articles/511031/A-sample-real-time-web-application-using-Ember-js)是(虽然它没有任何关于它的警告),因为它是基于以前版本的Ember编写的,但它可以为您提供一些有关如何将SignalR与您的应用程序集成的见解。 – MilkyWayJoe 2013-05-08 13:36:45

回答

2

对于服务器到客户端的通信,您可以使用SignalR。

SignalR允许你在服务器上创建一个集线器,然后你可以告诉它更新客户端。

它与回退机制,尝试使用以下技术和回落到下一个,如果它不是在浏览器可供选择:

  • 网络套接字
  • 服务器发送的事件
  • 永远框架
  • 长轮询

链接回退:http://www.asp.net/signalr/overview/introduction/transports-and-fallbacks

链接signalR:http://signalr.net/

+0

感谢Kenneth为你做出的快速反应,这看起来很有趣,这肯定会起作用,但是我徘徊是否还有其他选择让我考虑你知道? – 2013-05-08 11:36:29

+0

据我所知,对于服务器到客户端的通信,SignalR是唯一的解决方案。当然,你可以使用轮询或网络套接字来实现你自己的解决方案,但那不会很有效。 SignalR是最好的选择,它肯定没有什么*自动*为你的 – Kenneth 2013-05-08 11:49:25

+0

如果我在我的应用程序中使用signalr,那么并发性如果我的浏览器上有一个文本框显示一个人的详细信息,多人正试图更新这些人的细节。那么这将是有问题的,因为用户a完成更新细节,而用户b仍在写作,因此用户a的更改将在用户b的文本框上更新,这对用户b来说是非常令人沮丧的。对于该文本框,需要在客户端上有一个锁定机制,并且表中的某种排序器正在更新服务器端,因此可以检查并发性。你是否看到这个 – 2013-05-08 13:12:57

相关问题