【发布时间】:2011-02-22 00:59:11
【问题描述】:
我需要帮助找出最好的、跨浏览器兼容的方式来“保存”用户输入并将它们存储在本地(离线模式)和服务器上(在线)。程序将被 Android 和 iOS 使用。
我想知道在设备在线或离线时跟踪用户进度的最佳方式。
您好,我一直在研究 AJAX、JSON、XMLHttpRequest、REST、Java 和 HTML5(特别是 localStorage)。
场景:(在线/离线看书,保存页面进度)
用户登录到 Web Service,Web Service 允许用户下载“html 网页书”(使用 HTML5 浏览器查看)。
每次翻页后,REST API 使用 GET 请求将进度数据发布到 Web 服务器。同时,一个 JSON 字符串被创建并保存在服务器上的一个文件中。 (比如说“ProgressData.txt”)
在后台,ProgressData.txt 的单独“副本”本地保存在移动设备上。然后用户离开互联网连接并继续阅读 HTML 书籍。
-
当用户重新连接时,ProgressData.txt 会使用 REST API 上传到服务器,在该 API 中它将使用包含所有用户 ProgressData 的 NEW .txt 文件更新旧服务器文件。
可能的解决方案:
HTML5 localStorage 解决方案看起来不错。 jQuery 甚至简化了它: http://plugins.jquery.com/project/html5Storage
Straight Javascript 看起来很适合服务器端存储,但它无法访问移动设备的物理硬盘,因此无法进行任何形式的离线保存。
Java 小程序看起来可行。另外不确定Java如何在Android/iOS上运行。
我不想每次用户下线时都必须从移动设备运行 localhost(PHP/Apache/Python),但这可能是解决方案所在。我确实偶然发现了这个强大的工具:http://couchdb.apache.org/
问题:
我需要知道在设备在线或离线时跟踪用户进度的最佳方式。最好的方法是什么?
【问题讨论】:
-
斯科特,你找到什么了吗?
-
@Flakerim,在过去的一个月里,我一直在使用 javascript、php 甚至 Java,寻找简单、跨浏览器兼容的解决方案来解决“在线/离线数据库同步”问题。我的结论是这样的: 1. 使用 Javascript 来捕获你需要存储的所有数据。
-
2.在线时,使用 PHP curl 函数(或类似的东西......可能是 Ruby on Rails)将所有数据发布到服务器。 3. 在所有浏览(在线或离线)期间,使用 cookie 或 html5 网络存储将所有数据保存在本地。
-
嗯,我认为 CouchDB 是答案,但据我所知,它必须安装在客户端。我需要 Couch,因为我想保存的不仅仅是书页码。另外,我需要从服务器端访问它,所以如果连接在用户没有打开客户端时出现,我想同步它们,并且在用户打开客户端后它已经同步了。我需要一个不需要安装并且可以从 HTTP 访问的数据库。就像 web root 或 mdb 中的文本文件之类的。
标签: android ios load save offline