我正在AngularJS中构建一个相对复杂且数据量很大的Web应用程序.我打算使用php作为RESTful后端(使用symfony2和FOSRESTbundle).我花了几周时间寻找不同的线路/线路同步解决方案解决方案,似乎有很多半解决方案(参见下面的列表中的一些示例).但他们中的任何一个似乎都完全符合我的情况.我如何决定采用哪种策略?
哪些可能决定在AngularJS和symfony 2中构建开/关线同步系统的"最佳实践"的问题需要一些研究,但在我的头脑中我想考虑诸如速度,易于实现,未来证明(持久性)等问题解决方案),可扩展性,客户端的资源使用/需求,让多个离线用户编辑相同的数据,存储多少和什么类型的数据.
我目前了解的一些要求是:
- 用户经常离线,然后需要与数据库同步(本地创建)数据
- 多个用户共享一些可编辑数据(需要考虑潜在的合并问题).
- 用户可能同时从多个设备登录.
- 允许大量数据离线存储(最高可达千兆字节)
- 我可能希望用户能够决定他想在本地存储什么.
- 即使用户在线,我也可能希望用户能够选择是使用所有(后端)数据还是仅使用本地可用的数据.
一些潜在的示例解决方
- PouchDB - 用于同步来自多个源的更改的有趣策略
- Racer - 用于实时同步的节点库,基于ShareJS构建
- Meteor - DDP和同步策略
- ShareJS - Node.js运营转型,受Google Wave的启发
- Restangular - 替代$ resource
- EmberData - EmberJS的类似ORM的数据持久性库
- ServiceWorker
- IndexedDB Polyfill - Polyfill IndexedDB,带有支持WebSQL的浏览器(Safari)
- BreezeJS
- JayData
- 环回的ORM
- ActiveRecord的
- BackBone模型
- lawnchair - Brian Leroux的轻量级客户端数据库库
- TogetherJS - Mozilla Labs的多客户端状态同步/协作库.
- localForage - Mozilla的DOMStorage改进库.
- Orbit.js - 内容同步库
(https://docs.google.com/document/d/1DMacL7iwjSMPP0ytZfugpU4v0PWUK0BT6lhyaVEmlBQ/edit#heading=h.864mpiz510wz)
任何帮助将非常感激 :)