使用Gears创建离线Web.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
使用Gears创建离线Web

Gears概述 Google Gears提供一种浏览器存储支持技术,这种技术使得传统的WEB应用的浏览器层再不仅仅只具有页面的显示能力,而还将具备把远程数据同步到本地,并在本地对数据结构化利于访问和查询,最后还能把处理之后的数据在后台同步到服务器。其总体框架如下图: Google Gears是作为一个浏览器的插件被安装在本机的,Gears 所支持的操作系统和浏览器包括 Windows, Windows Mobile, Mac (Firefox, Safari), Linux and Android。因此,Gears支持目前主流的操作系统和浏览器,具有极强的兼容性和广泛的适用范围。、 Gears具有如下特性:   能够让WEB应用程序可以更自然的与本地桌面应用交互能够把数据以结构化的形式存储到本地数据库,方便查询能够在后台运行JavaScript以提高执行效率 Gears 实际上提供了一种离线模型来设计应用程序,我们可以把这种模式理解为一种本地服务模式。事实上,Gears就是通过它的关键组件来缓存应用资源,并在离线状态下可用。因此,存储应用资源就是Gears的一个关键技术。 在传统的应用中,应用资源及数据都是被存储在服务器一端的,即使在客户端也是一些有限的非结构化的数据,比如Cookie等。然而,要是采用离线式的应用形式,数据就必须要存储到本地;而存储的数据为了能够方便的访问和查询,就必须要以结构化的数据存储。因此,提供一个本地的关系数据库是一种比较好的形式。当作业在离线完成之后,就需要使得本地的数据能够和服务器的数据进行同步;当然,这里有很多方案可供选择;因为,不同的系统结构可能不同的方案。另外,Gears的数据库提供了全文简述的方式,因此Gears能够在数据库文件中很快做文本查询。 Gears由于数据的处理有一部分是在客户端进行的,因此可能存在客户端处理大量的数据或是在同步的时候要同步大量的数据,那么执行性能可能会有所降低。不过,Gears提供了一种叫做WorkerPool的技术,使得这类操作可以在程序执行的后台进行操作,从而使得这种需要长期等待的作业不会影响用户的其他操作。 通过本地存储的结构 那么接下来,我们要是在本地增加一个数据层并提供一个本地的数???库,那么我们的数据层就会有两个,一个来自服务器,另一个则来自本地。这样做,你可以把离线数据存储到本地库,并通过与服务器交互的数据层进行同步。 通过上述四种结构的演绎,我们的目的是要使得离线模型的应用程序成为可能。当然,并不是任何应用都需要采用离线模型,这一切都要取决与应用的逻辑和连接策略。比如,你的数据是实时更新的,就好像股票的信息你可能在客户端只需要知道当前的实事数据那么就不需要离线作业,再比如,一些在线聊天系统的消息等,这些都不需要离线模型来进行处理。 总的来说,应用访问本地数据的性能肯定要比每次都使用来自服务端的数据要高。但必须要考虑程序的代价和收益,因为本地离线数据也是要与服务器同步的。 后台同步结构 如上图通过一个同步引擎在后台同步本地和服务器之间的数据,这样做的好处很明显,客户在离线作业的时候不需要考虑应用的状态同步,而是通过一个后台引擎同步。而Gears的结构就是这样一种结构。 本地数据库 就如同我们在Gears的体现结构中谈到的那样,Gears提供了一个本地数据库,事实上这个本地数据库是一个SQLite数据库。该数据库的文件位置如果在Windows上就是在Windows的用户文件夹的目录下,如下图: 文件里有三个db文件,分别是geolocation.db、localserver.db和permissions.db文件,geolocation是国际化库,localserver是Gears服务库而permissions是Gears的MetaData数据库。我们的数据文件,是根据域来存放的。 我们已经大致了解了Gears的工作情况,在前面的Gears的体系结构中,我们也知道Gears提供了JavaScript的接口供用户在页面访问该数据库。操作Gears的数据库和通常下的数据库访问代码类似。大致步骤如下: 创建连接到数据服务上 打开服务上的某个数据库 执行SQL指令(DDL和DML) 例如如下代码: db = google.gears.factory.create(beta.database); db.open(database-personInfo); db.execute(SQL Command); 另外,如果在执行Select语句的时候可能会产生结果集,在结果集的处理上通过db.execute方法返回一个rs结果集,在结果集上可以通过isValidRow方法判断是否可以继续迭代,并通过next方法进行

文档评论(0)

asd522513656 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档