Web 技术(HTML5、CSS3 和 JavaScript)早就对应用开发承诺了 “只需编写一次代码,就可以跨多个移动平台进行部署” 的解决方案。然而,直到最近,这个承诺仍未得到兑现。基于 Web 的移动应用往往会有落后的性能、奇怪的用户界面,以及网络连接的延迟和中断。将 Web 应用程序的服务器端扩展到多个接入设备也是一个棘手的、代价高昂的问题。
令人高兴的是,支持移动应用开发的基于 Web 的技术最近取得了一些进展,让这种格局得到了改变:
在 UI 端: 是一个灵活的高性能 Web UI 布局和动画库,可以用它来为移动应用程序创建原生代码级别的用户体验。
在数据访问端:客户端/服务器数据访问的 Web 应用程序模型(基于随时可用的 Internet 连接)不适合移动应用程序。移动设备可能会断开网络访问持续一段时间。无尽的重试可能会导致应用程序延迟和用户的挫折感。 目前通过 JavaScript 库利用移动支持解决了这个问题。
使用 PouchDB,在浏览器中运行的应用程序可以通过熟悉的基于 JSON 的 CouchDB API 对始终可用的、快速接入的本地数据库进行读写。然后,PouchDB 与 Cloudant 进行通信,并通过托管的复制跨多个服务器来保存该数据的同步副本。仅当设备连接到 Internet 并且可以在不会对用户造成干扰的情况下进行中断时才执行同步。通过在配置 Cloudant 服务的过程中将复制的副本添加到更接近用户的地方,可以采用具有成本效益的方式来解决可扩展性问题。