【发布时间】:2018-10-18 22:54:34
【问题描述】:
我使用 javascript 库 D3 创建了一个应用程序。用户会不断地单击和拖动以频繁更改图形元素,我目前将数据保存在 3-4 个本地 javascript 对象和数组中。我想定期将数据保存到服务器,而不是在每次更改之后。另外,我希望他们能够在未连接的情况下工作。从二十年前开始,我想象手动执行此操作,在客户端记录被标记为“新”、“修订”和“已删除”。每 10 秒通过 AJAX 保存客户端数据,并更新对象或执行 SQL 语句。从数据库返回一个 id 并保存在客户端,以跟踪每条记录以供将来修改。
请注意,数据必须在数据库中组织,以便于分离元素以供重用。当用户连接时,每 5-10 秒更新一次就可以了。然后我可以使用便宜且速度慢的服务器。当然,处理可能没有完全更新的记录的工具是好的,也许是一些事务功能。
不会有单独的移动应用程序。如果需要,我可以将我的 javascript 对象修改为 json 兼容。我看到有“离线优先”框架和 javascript“状态容器”。 Redux 引起了我的注意,尤其是当我根据 Google 趋势看到它的使用多年来不断攀升时。我已经阅读了很多选项,并且对所有这些都感到非常困惑。这是我查看的工具的混搭:Store.js、now.js、indexedDB、couchDB、pouchDB、Cloudant、localForage、WebSQL、Polymer App Toolbox、Hoodie 框架、Ionic 和 Angular 以及 Loopback。更不用说 XHR、网络套接字了。
我使用过 Laravel 和 Zend 等 MVC,它们都使用 PHP 和 MySql。我想知道我是否可以整合建议的解决方案。谢谢。
Related: How do I sync data with remote database in case of offline-first applications?
【问题讨论】:
标签: javascript redux couchdb offline progressive-web-apps