我如何离线使用已部署的 Rails 4 应用程序并在需要时同步它?
How Could I Use a Deployed Rails 4 App Offline and Sync it When I Want?
我正在开发一个 Rails 应用程序,作为收银机、销售记录器和票据打印机,用于同一特许经营的许多商店的每次购买。
问题是它必须能够 运行 离线,以防互联网在任何给定时间、任何商店位置出现故障,这样客户服务就不会受到影响。
有没有办法运行 Rails 应用离线并在重新建立连接后与服务器同步?
甚至离线操作并在一天结束时同步?
是否需要特定的数据库?
从技术上讲,您没有理由不能这样做。我已经做到了,如果您仔细设计应用程序,它实际上工作得很好。
除此之外,需要注意的是:
- Javascript 库,例如 jQuery,您需要确保从 public 目录加载,而不是从 CDN
- Rails 附带 SQLite,非常适合离线(和小规模)功能。如果愿意,您可以将本地数据库服务器用于 Postgres 或 MySQL(或您可以在本地安装的任何东西)。
- 图像、字体和其他设计资产也应在本地可用,如果您有要使用的在线图像或字体资源,这可能会很棘手(例如 Google 限制离线使用它们字体资源)
测试离线行为也很容易。将其放在笔记本电脑上并关闭 Wifi。如果可行,您很快就会知道。
对于离线应用程序和主服务器之间的文件同步,您可以选择技术和数据格式。您可以实现 REST 风格的同步 API、低技术 FTP 推送,甚至 rsync。数据格式很容易是 JSON(当前结构化数据存储的公主)、完善的 CSV,甚至(不寒而栗)XML。
构建离线应用程序应该没有什么意外,您将拥有 Rails 提供给您的所有工具和资源,除了从 Internet 任意加载资源的能力。
我正在开发一个 Rails 应用程序,作为收银机、销售记录器和票据打印机,用于同一特许经营的许多商店的每次购买。
问题是它必须能够 运行 离线,以防互联网在任何给定时间、任何商店位置出现故障,这样客户服务就不会受到影响。
有没有办法运行 Rails 应用离线并在重新建立连接后与服务器同步?
甚至离线操作并在一天结束时同步?
是否需要特定的数据库?
从技术上讲,您没有理由不能这样做。我已经做到了,如果您仔细设计应用程序,它实际上工作得很好。
除此之外,需要注意的是:
- Javascript 库,例如 jQuery,您需要确保从 public 目录加载,而不是从 CDN
- Rails 附带 SQLite,非常适合离线(和小规模)功能。如果愿意,您可以将本地数据库服务器用于 Postgres 或 MySQL(或您可以在本地安装的任何东西)。
- 图像、字体和其他设计资产也应在本地可用,如果您有要使用的在线图像或字体资源,这可能会很棘手(例如 Google 限制离线使用它们字体资源)
测试离线行为也很容易。将其放在笔记本电脑上并关闭 Wifi。如果可行,您很快就会知道。
对于离线应用程序和主服务器之间的文件同步,您可以选择技术和数据格式。您可以实现 REST 风格的同步 API、低技术 FTP 推送,甚至 rsync。数据格式很容易是 JSON(当前结构化数据存储的公主)、完善的 CSV,甚至(不寒而栗)XML。
构建离线应用程序应该没有什么意外,您将拥有 Rails 提供给您的所有工具和资源,除了从 Internet 任意加载资源的能力。