在传统的应用中,应用资源及数据都是被存储在服务器一端的,即使在客户端也是一些有限的非结构化的数据,比如Cookie等。然而,要是采用离线式的应用形式,数据就必须要存储到本地;而存储的数据为了能够方便的访问和查询,就必须要以结构化的数据存储。因此,提供一个本地的关系数据库是一种比较好的形式。当作业在离线完成之后,就需要使得本地的数据能够和服务器的数据进行同步;当然,这里有很多方案可供选择;因为,不同的系统结构可能不同的方案。另外,Gears的数据库提供了全文检索的方式,因此Gears能够在数据库文件中很快做文本查询。
Google Gears 是一种开源项目,可通过向网络浏览器添加新功能使网络应用程序功能更强大。它支持用户浏览器能够使用开发者创建的基于 Gears 的离线应用。它提出了一种离线应用的思想,它的三大核心模块将帮助开发者更好地运用这个思想来开发。Gears 技术是基于客户端语言 JavaScript 技术的扩展。
Gears的核心模块:
- 本地服务器:在本地缓存和提供应用程序资源(HTML、JavaScript、图片等),让WEB应用程序可以更自然的与本地桌面应用交互
- 本地数据库:能够把数据以结构化的形式存储到本地数据库,方便查询
- 工作者池:通过异步执行资源密集型的操作使网络应用程序的响应速度更快 ,能够在后台运行JavaScript以提高执行效率
Gears由于数据的处理有一部分是在客户端进行的,因此可能存在客户端处理大量的数据或是在同步的时候要同步大量的数据,那么执行性能可能会有所降低。不过,Gears提供了一种叫做WorkerPool的技术,使得这类操作可以在程序执行的后台进行操作,从而使得这种需要长期等待的作业不会影响用户的其他操作。
离线应用实例程序
Database Demo
Shows how to read and write data locally using the Database module.
File System Demo
Demonstrates using the file picker for choosing multiple files; filtering on MIME type; and displaying the results to the screen
Geolocation Demo
Demonstrates basic usage of the Geolocation module.
ResourceStore Demo
Uses the LocalServer module to capture a URL so that it can be viewed while offline.
ManagedResourceStore Demo
Uses the LocalServer module to capture a versioned set of URLs, and updates the entire set to a new version.
Shortcut Demo
Shows how to create desktop shortcuts using the Desktop module.
WorkerPool Demo
Performs a long-running computation without blocking the UI, using the WorkerPool module.