代码之家  ›  专栏  ›  技术社区  ›  salt.racer

使用Google Gears和Rails

  •  1
  • salt.racer  · 技术社区  · 16 年前

    我的任务是探索离线访问我的webapp的可能性。人们使用Google Gears和Rails的体验是什么?我知道 gearsonrails 项目,但是它有一些非常奇怪的结构,并且似乎没有进行显著的、积极的开发。

    还有其他选择吗?是否有人成功地为现有的Rails应用程序添加了齿轮?这是超级痛苦吗?

    2 回复  |  直到 15 年前
        1
  •  1
  •   Steve Graham    15 年前

    谷歌齿轮是 dead ,发展已经停止。你最好用HTML5来解决你的问题,它实现了使离线访问成为可能的API(一个可以使用类似SQL的语言和一个键值存储查询的客户端数据库)。此时,没有一个主要的浏览器完全实现(开发)标准。因此,您必须在根据事实上过时的插件进行开发或针对新出现的标准进行开发之间做出决定。

        2
  •  0
  •   Matthew Savage    15 年前

    我自己也在研究这个问题——通常的想法是,根据你想在离线状态下提供什么,你需要在客户端进行设置(注意,这是未经测试的,因此未经验证——我只是从我对所读内容的理解出发——尽管我计划在接下来的几周内进行一些实验…)

    在大多数情况下,我建议使用Rails设置标准的RESTful资源,然后在客户机库中执行以下操作:

    1. 加载页面后,确定齿轮是否已加载,以及客户机上的数据库是否可用。
    2. 必要时创建数据库。
    3. 使用worker进程,初始化一个调用到您的restful控制器中以获取所需的数据-在返回数据时,将其写入本地数据库(使用worker进程将允许“多线程”体验,并确保不锁定客户端。
    4. 定期轮询远程服务器,检查数据中的更改—如果需要,请下拉一个新的集并重新加载本地数据缓存。
    5. 当客户端脱机时,切换到使用本地客户端数据库。

    显然,这是一个只读示例,它依赖于使用Ajax客户端调用在页面中填充数据等现有的体系结构。

    你的手段可能会有所不同,但我建议你只是四处玩玩-记住你不会 要使用Rails插件等来实现这一点,您只需自己滚动客户端脚本,而且您永远不会知道,一旦完成,您可能能够将您的工作重构为一个伟大的小宝石或类似的东西…