使用Gears创建离线Web

使用Gears创建离线Web

ID:38362009

大小:232.43 KB

页数:8页

时间:2019-06-11

使用Gears创建离线Web_第1页
使用Gears创建离线Web_第2页
使用Gears创建离线Web_第3页
使用Gears创建离线Web_第4页
使用Gears创建离线Web_第5页
资源描述:

《使用Gears创建离线Web》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、Gears概述GoogleGears提供一种浏览器存储支持技术,这种技术使得传统的WEB应用的浏览器层再不仅仅只具有页面的显示能力,而还将具备把远程数据同步到本地,并在本地对数据结构化利于访问和查询,最后还能把处理之后的数据在后台同步到服务器。其总体框架如下图:GoogleGears是作为一个浏览器的插件被安装在本机的,Gears所支持的操作系统和浏览器包括Windows,WindowsMobile,Mac(Firefox,Safari),LinuxandAndroid。因此,Gears支持目前主流的操作系统和浏览

2、器,具有极强的兼容性和广泛的适用范围。、Gears具有如下特性:能够让WEB应用程序可以更自然的与本地桌面应用交互能够把数据以结构化的形式存储到本地数据库,方便查询能够在后台运行JavaScript以提高执行效率Gears实际上提供了一种离线模型来设计应用程序,我们可以把这种模式理解为一种本地服务模式。事实上,Gears就是通过它的关键组件来缓存应用资源,并在离线状态下可用。因此,存储应用资源就是Gears的一个关键技术。在传统的应用中,应用资源及数据都是被存储在服务器一端的,即使在客户端也是一些有限的非结构化的数

3、据,比如Cookie等。然而,要是采用离线式的应用形式,数据就必须要存储到本地;而存储的数据为了能够方便的访问和查询,就必须要以结构化的数据存储。因此,提供一个本地的关系数据库是一种比较好的形式。当作业在离线完成之后,就需要使得本地的数据能够和服务器的数据进行同步;当然,这里有很多方案可供选择;因为,不同的系统结构可能不同的方案。另外,Gears的数据库提供了全文简述的方式,因此Gears能够在数据库文件中很快做文本查询。Gears由于数据的处理有一部分是在客户端进行的,因此可能存在客户端处理大量的数据或是在同步的

4、时候要同步大量的数据,那么执行性能可能会有所降低。不过,Gears提供了一种叫做WorkerPool的技术,使得这类操作可以在程序执行的后台进行操作,从而使得这种需要长期等待的作业不会影响用户的其他操作。通过本地存储的结构那么接下来,我们要是在本地增加一个数据层并提供一个本地的数据库,那么我们的数据层就会有两个,一个来自服务器,另一个则来自本地。这样做,你可以把离线数据存储到本地库,并通过与服务器交互的数据层进行同步。通过上述四种结构的演绎,我们的目的是要使得离线模型的应用程序成为可能。当然,并不是任何应用都需要采

5、用离线模型,这一切都要取决与应用的逻辑和连接策略。比如,你的数据是实时更新的,就好像股票的信息你可能在客户端只需要知道当前的实事数据那么就不需要离线作业,再比如,一些在线聊天系统的消息等,这些都不需要离线模型来进行处理。总的来说,应用访问本地数据的性能肯定要比每次都使用来自服务端的数据要高。但必须要考虑程序的代价和收益,因为本地离线数据也是要与服务器同步的。后台同步结构如上图通过一个同步引擎在后台同步本地和服务器之间的数据,这样做的好处很明显,客户在离线作业的时候不需要考虑应用的状态同步,而是通过一个后台引擎同步。

6、而Gears的结构就是这样一种结构。本地数据库就如同我们在Gears的体现结构中谈到的那样,Gears提供了一个本地数据库,事实上这个本地数据库是一个SQLite数据库。该数据库的文件位置如果在Windows上就是在Windows的用户文件夹的目录下,如下图:文件里有三个db文件,分别是geolocation.db、localserver.db和permissions.db文件,geolocation是国际化库,localserver是Gears服务库而permissions是Gears的MetaData数据库。我

7、们的数据文件,是根据域来存放的。我们已经大致了解了Gears的工作情况,在前面的Gears的体系结构中,我们也知道Gears提供了JavaScript的接口供用户在页面访问该数据库。操作Gears的数据库和通常下的数据库访问代码类似。大致步骤如下:1.创建连接到数据服务上2.打开服务上的某个数据库3.执行SQL指令(DDL和DML)例如如下代码:db=google.gears.factory.create('beta.database');db.open('database-personInfo');db.exec

8、ute('SQLCommand');另外,如果在执行Select语句的时候可能会产生结果集,在结果集的处理上通过db.execute方法返回一个rs结果集,在结果集上可以通过isValidRow方法判断是否可以继续迭代,并通过next方法进行迭代。在结果集上,如果要取的所迭代的行上的数据可以通过field(index)方法,其中index参数表示行中列的索引

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。