用于在应用的后台对动作进行同步的系统和方法

文档序号:6496339阅读:189来源:国知局
用于在应用的后台对动作进行同步的系统和方法
【专利摘要】后台页面脚本在设备上运行。多个网页在该设备上运行。向后台页面脚本注册多个网页。在数据库中缓存多个网页中的一个网页所生成的动作。响应于确定设备处于在线状态以及不再注册多个网页中的一个网页,后台页面脚本从数据库取回动作并发送动作。
【专利说明】用于在应用的后台对动作进行同步的系统和方法
[0001]相关申请的交叉引用
[0002]本申请要求于2012年5月3日递交的美国申请13,463,131和于2011年8月31日递交的美国临时申请N0.61/529,646的优先权,其全文均通过引用的方式并入本文中。
【技术领域】
[0003]本说明书大体上涉及用于在应用的后台对动作进行同步的系统、方法和装置,更具体地,涉及用于在返回在线状态时在web应用的后台对动作进行同步的系统、方法和装置。
【背景技术】
[0004]当处于具有受限或断断续续的互联网接入的区域中时,现有系统向访问web应用的用户提供有限的功能或者不向用户提供功能。例如,在现有的电子邮件(email)应用中,当访问电子邮件应用的设备具有断断续续的互联网接入或不能接入互联网时,在设备重新获得对互联网的接入之前,只有极少的功能或者没有功能可用。
[0005]在未连接到互联网时,访问电子邮件应用的一些设备可以提供在收件箱中缓存的电子邮件消息的静态显示。例如,使用设备的用户可以看见电子邮件的主题或者先前在该设备与互联网断开之前所发送的电子邮件的缓存部分。然而,电子邮件消息的主题的显示是静态的,并且在用户重新连接到互联网之前,向用户提供极少的功能。此外,现有系统就在设备与电子邮件服务器之间同步数据而言具有有限的能力。

【发明内容】

[0006]根据实施例,向在设备上运行的后台页面脚本注册在所述设备上运行的多个网页。在数据库中缓存所述多个网页中的一个网页所生成的动作。响应于确定所述设备处于在线状态以及不再注册所述多个网页中的所述一个网页:所述后台页面脚本从所述数据库取回所述动作,并且所述后台页面脚本发送所述动作。
[0007]在一个实施例中,所述后台页面脚本向主机服务器发送所述动作。
[0008]在一个实施例中,响应于对所述动作的成功发送的确认的接收,从所述数据库中移除所述动作。
[0009]在一个实施例中,所述多个网页中的所述一个网页在所述数据库中缓存第二动作。所述多个网页中的所述一个网页发送所述第二动作。所述多个网页中的所述一个网页从所述数据库中移除所述第二动作。在一个实施例中,所述多个网页中的所述一个网页向所述后台页面脚本发送不再注册的请求。
[0010]在一个实施例中,响应于对所述第二动作的成功发送的第二确认的接收,发生从所述数据库中移除所述第二动作。在一个实施例中,响应于接收到用户关闭所述多个网页中的所述一个网页的请求,发送所述不再注册的请求。
[0011 ] 在一个实施例中,在所述数据库中锁定所述动作。[0012]在一个实施例中,所述多个网页中每一个与以下各项中的至少一项相关联:电子邮件应用、web文档处理应用、多媒体播放器应用、社交媒体网络应用、电子数据表应用、呈现应用、游戏应用、图像编辑应用和视频编辑应用。
[0013]根据实施例,设备经由互联网访问应用。所述设备运行与所述应用相关联的后台页面脚本。在后台页面中注册与所述应用相关联的第一网页和与所述应用相关联的第二网页。当设备处于离线状态时,在数据库中存储所述第一网页所生成的第一动作和所述第二网页所生成的第二动作。确定所述第一网页和所述第二网页被关闭。向所述后台页面注销所述第一网页和所述第二网页。所述后台页面脚本从所述数据库取回所述第一动作和所述第二动作。经由所述互联网向服务器发送所述第一动作和所述第二动作。
[0014]通过参考以下详细描述和附图,本公开的这些和其他优点将对本领域普通技术人员是显而易见的。
【专利附图】

【附图说明】
[0015]图1示出了根据实施例可以用于在应用的后台对动作进行同步的通信系统100 ;
[0016]图2示出了根据实施例的设备的功能组件;
[0017]图3示出了根据实施例的主机服务器的功能组件;
[0018]图4示出了根据实施例应用在浏览器上运行的显示;
[0019]图5是示出了根据实施例使用后台页面脚本的方法的流程图;
[0020]图6示出了根据实施例在浏览器上运行的应用的显示;
[0021]图7示出了根据实施例包括分页式网页的应用的显示;
[0022]图8是示出了根据实施例用于对动作进行同步的方法的流程图;以及
[0023]图9示出了可以用于实现本发明的计算机的组件。
【具体实施方式】
[0024]图1示出了根据实施例可以用于在应用的后台对动作进行同步的通信系统100。通信系统100包括网络102、主机服务器101和设备103。通信系统100可以包括多于一个设备。在一个实施例中,通信系统100可以包括多于一个主机服务器或其他服务器。
[0025]在图1的示例性实施例中,网络102是互联网。在其他实施例中,网络102可以包括多个不同类型的网络(例如,内联网、局域网(LAN)、广域网(WAN)、无线网络、基于光纤通道的存储区域网络(SAN)或以太网)中的一个或更多个。可以使用其他网络。备选地,网络102可以包括不同类型的网络的组合。
[0026]通信系统100还包括主机服务器101。在一个实施例中,主机服务器101可以管理(host)设备103可以访问的web应用。在备选实施例中,web应用可以由任意其他服务器管理。在一个实施例中,主机服务器101可以提供对一个或更多个网页的访问,从而提供对web应用的访问。例如,如图3和图6所示,主机服务器101可以管理显示网页611和612的应用316。网页611和612可以备选地被称为前台页面。设备103可以访问可以使用例如传统的web浏览器查看的万维网页面,例如网页611和612。
[0027]设备103可以是使用户能够访问应用316的任意设备。设备103可以通过直接(有线)链路或无线地与网络102相连。设备103可以具有用于显示信息的显示屏(未示出)。例如,设备103可以是个人计算机、膝上型计算机、工作站、大型计算机、诸如无线电话等的移动通信设备、个人数字助理、蜂窝设备、膝上型计算机、上网本、平板电脑设备、电子书阅读器等。可以使用其他设备。
[0028]图2示出了根据实施例的设备103的功能组件。设备103包括浏览器201和显示器202。浏览器201可以是用于经由例如互联网访问万维网站点的传统web浏览器。显示器202可以显示软件应用、网页、文档、文本、图像、视频、多媒体和其他信息。
[0029]设备103还包括存储器203,存储器203包括数据库204。数据库204可以用于在设备103上本地存储或缓存项目。在一个实施例中,数据库204可以是结构化查询语言(SQL)数据库或SQLite数据库。设备103包括处理器205。
[0030]图3示出了根据实施例的主机服务器101的功能组件。主机服务器101包括处理器302和存储器303。主机服务器101可以包括图3中未示出的其他组件。存储器303存储应用316。在备选实施例中,应用316可以存储在存储器303和主机服务器101的外部。
[0031]假定用户使用设备103来访问应用316,可以向该用户提供应用的显示。现在假定应用是web应用,例如web电子邮件应用、web文档处理应用、多媒体播放器应用、社交媒体网络应用、电子数据表应用、呈现应用、游戏应用、图像编辑应用、视频编辑应用或从设备向服务器传送动作的任意其他应用。如果用户希望访问web应用,则用户可以在设备103上的显示器上点击针对该应用的图标、键入与该web应用相关联的统一资源定位符(URL)或以其他方式访问该应用。该应用打开并可以经由网页(例如图6中的网页611)查看。在一个实施例中,网页可以提供web应用的显示。
[0032]在另一实施例中,应用可以在设备103上以及在主机服务器101上运行,并且当用户访问网页时,用户可以使用该应用,如图4所示。图4示出了根据实施例应用在浏览器上运行的显示。例如,设备103包括运行应用316的浏览器201。在该示例中,应用316可以是与在主机服务器101上运行的应用相同的应用。备选地,应用316可以与在主机服务器101上运行的应用不同。在一个实施例中,应用316可以在浏览器201上运行。在该实施例中,主机服务器101可以远程存储与仅在设备103上运行的应用316相关联的数据。
[0033]图5是示出了根据实施例使用后台页面脚本的方法的流程图。在步骤5002处,向在设备上运行的后台页面脚本注册在该设备上运行的多个网页。如图6所示,在图1中的设备103上运行的后台页面脚本614注册在设备103上运行的多个网页(例如,网页611和网页612)。通过图6中所示的箭头示出了后台页面脚本614与多个网页(例如,网页611和网页612)之间的通信。在一个实施例中,多种通信方法包括直接功能呼叫、发布消息、web意图(web intents)、利用共享存储设备的公布/通知机制等。
[0034]在图6和图7所示的实施例中,假定使用设备103的用户正在使用应用316。应用316可以是web电子邮件应用。当用户运行应用316时,图6所示的后台页面脚本614也运行。在一个实施例中,对于一个应用可以仅使用一个后台页面脚本,并且如果该应用的多个实例正在运行,则可以仅需要单个后台页面脚本。后台页面脚本614还管理网页注册器,并在其中注册打开的应用316的每一个网页。后台页面脚本614可以对用户不可见。后台页面脚本614可以维护活动页面的计数器,并保持跟踪活动页面。应用316可以与后台页面脚本614进行通信,以向后台页面脚本614通知网页何时打开(因此可以向后台页面脚本614注册该网页)以及网页何时关闭(因此可以向后台页面脚本614注销该网页)。以此方式,当网页关闭时,该计数器递减。在一个实施例中,后台页面脚本614等待直到该计数器减小至零为止(例如当没有网页打开时)才发送动作,如下所述。
[0035]用户可以打开与应用316相关联的多个网页(例如,网页611和网页612)。例如,如果用户正在阅读电子邮件,则网页611可以向用户提供电子邮件消息的显示。用户可以打开新网页612,新网页612可以提供用户正在编写的新电子邮件消息的显示。因此,用户可以利用每一个窗口来运行单独的任务,例如,一个窗口用于执行阅读电子邮件的任务,而另一窗口用于执行写电子邮件的任务。在一个实施例中,用户可以利用一个或更多个窗口来执行相同的任务,或者一个或更多个窗口可以用于执行多个任务。
[0036]在一个实施例中,应用316可以是正在主机服务器101上运行的web应用。因此,在图6和图7中,示出了应用或向使用设备103的用户图形地显示所运行的应用的网页的显不O
[0037]多个仵备
[0038]在图7所示的实施例中,应用716包括分页式网页702。在一个实施例中,应用716可以是web电子邮件应用。分页式网页702包括网页711-A和网页711-B。在图7所示的实施例中,选择网页711-B(例如通过点击或选择网页711-B的区域、通过使用鼠标、键盘、其他输入设备、通过使用具有触摸屏功能的设备进行触摸、通过使用语音命令等),因此显示网页711-B的内容。网页711-B包括:可以包括地址栏或其他信息的区域702、可以包括收件箱的显示的区域704、可以包括聊天记录的区域708以及可以包括图像、视频或其他多媒体的区域706。网页711-A可以包括与网页711-B类似的项目,或者每一个窗口可以是另一窗口的精确复制。在与上文关于图6所描述的实施例类似的实施例中,用户可以使用网页711-A来写电子邮件消息并且执行一个任务集合,同时使用网页711-B以使用与网页711-A中的任务相同或不同的任务中的一个或更多个。在一个实施例中,网页711-A中所呈现的一些或所有任务可以与网页711-B中所呈现的任务不同。
[0039]在一个实施例中,一个用户可以使用网页711-A来登录电子邮件账户,而相同用户或另一用户可以使用网页711-B来登录另一电子邮件账户。
[0040]现在假定用户正坐在汽车的乘客座位上旅行。用户正在使用上网本并希望使用应用716来查看并执行与电子邮件账户相关联的任务。当用户打开、进入或以其他方式访问应用716中的网页711-B时,向后台页面脚本714注册网页711-B。在一个实施例中,后台页面脚本714在应用716的后台运行并可以对用户不可见。类似地,当用户打开另一分页式网页711-A或应用716中的任意其他网页时,向后台页面脚本714注册网页711-A。类似地,在图6所示的实施例中,如果用户打开网页611或网页612,则向在应用316的后台运行的后台页面脚本614注册网页611或网页612中的每一个。
[0041]在步骤5004处,在数据库中缓存多个网页中的一个网页所生成的动作。在数据库204中缓存多个网页(图6中的网页611和网页612或图7中的网页711-A和网页711-B)中的一个网页所生成的动作。在一个实施例中,动作可以是命令和/或变更,例如保存、删除、标记为重要、选作垃圾信息、移动到另一文件夹、发送、转发、下载、用星号标记、共享、编辑、添加附件/图像/链接/媒体等。
[0042]在注册、登录或以其他方式访问电子邮件账户之后,可以向用户呈现示出多个任务的显示。该用户可以例如查看区域704中的电子邮件收件箱;区域708中的聊天记录和区域706中的图像、视频等。当汽车在地下隧道中行进时,用户可能暂时丢失互联网接入(例如由于较差的接收信号)并进入离线状态。允许用户继续点击收件箱中的电子邮件并在聊天记录中键入与其好友的聊天消息,而不是与应用716断开。即使当汽车在地下隧道中行进时互联网连接断断续续或丢失,用户仍会能够在应用716中查看、访问或草拟电子邮件。在一个实施例中,对与电子邮件账户相关联的项目进行本地拷贝,并在网页711-B上向用户显示。也即是说,在设备103的存储器203中本地存储与电子邮件地址相关联的电子邮件消息、聊天消息等。可以在数据库204中或在另一存储元件(图2中未示出)中存储与电子邮件地址相关联的消息等。
[0043]在另一实施例中,现在假定用户设备在延长的时间段内处于离线状态。例如,假定用户正在不提供无线互联网接入的飞机上使用他/她的移动电话、膝上型计算机、上网本等。用户可以键入针对地址簿中存储的电子邮件联系人的电子邮件消息。即使当设备在延长的时间段内处于离线状态,用户也能够在电子邮件程序中键入电子邮件。该电子邮件被本地存储在数据库204中(或图2中未示出的另一存储元件中)。
[0044]在数据库204中缓存用户所发出的所有动作或命令。例如(在图7中),假定用户希望删除区域704中的收件箱中显示的电子邮件消息、在区域708中显示的聊天记录内键入与朋友的聊天消息并将区域706中显示的视频转发给另一朋友。当用户发出这些动作时,在数据库204中缓存每一个动作,使得在向主机服务器101成功地发送动作之前,可以对其进行保存。
[0045]现在假定用户已经完成对电子邮件账户的访问。然后,用户将通过点击“x”712来关闭网页711-B。类似地,用户可以通过点击“x”713来关闭网页711-A。在一个实施例中,用户可以通过发出键盘命令、语音命令、通过点击触发网页的关闭的备选元件、通过触摸网页的使其关闭的区域(如果用户正在使用具有触摸屏功能的设备的话)或通过其他方式来关闭网页。
[0046]在一个实施例中,用户可以关闭应用716或执行可以触发网页的关闭的另一任务。一旦网页关闭,后台页面脚本714就对其进行注销。在重新建立互联网连接之前,动作保持缓存在数据库204中。
[0047]当设备103能够经由网络102与主机服务器101重新连接时,向主机服务器101发送数据库204中所缓存的动作。在一个实施例中,后台页面脚本714可以使设备103周期性地ping主机服务器101,以确定是否可以进行连接以及设备103是否处于在线状态。在另一实施例中,可以使用其他方式来确定设备103何时重新获得对互联网的接入并且然后可以建立与主机服务器101的连接。
[0048]在步骤5006和步骤5008处,响应于确定设备处于在线状态并且不再注册多个网页中的一个网页:后台页面脚本从数据库取回动作。响应于确定设备103处于在线状态并且不再注册网页711-B,后台页面脚本714从数据库204取回动作。
[0049]因此,后台页面脚本714从数据库204取回动作。在步骤5010处,后台页面脚本发送动作。后台页面脚本714经由网络102向主机服务器101发送动作。在一个实施例中,后台页面脚本714在取回动作并尝试将它们发送到主机服务器101之前,可以等待预定时间。例如,后台页面脚本714可以等待几毫秒、一分钟或根本不等待,以确定设备103是否回到在线状态。[0050]动作可以与网页相关联,并可以基于网页被分离。动作还可以基于用户被分离。例如,第一用户可以对网页执行可以与第二用户所执行的动作不同的动作。
[0051]在当网页711-B关闭时尝试发送动作时,网页711-B被识别并仅发送属于网页711-B的动作。在一个实施例中,如果多个网页打开,则在发送动作之前关闭所有多个网页。当所有多个网页关闭时,可以发送所有动作,而不需要知道动作与各个网页的关联。也即是说,可以发送所有动作,而不需要知道哪个动作与哪个网页相关联。
[0052]在一个实施例中,设备103返回在线状态可以被称为上线事件(online event)。具体而言,当设备103从离线状态切换到在线状态时,上线事件发生。在上线事件期间,设备103可以与主机服务器101重新同步。当设备103从在线状态切换到离线状态时,下线事件(offline event)发生。
[0053]动作的聚集(batching)
[0054]后台页面脚本714可以向主机服务器101发送数据库204中存储的动作或命令。在一个实施例中,后台页面脚本714可以在向主机服务器101进行发送之前将多个动作聚集在一起。在另一实施例中,后台页面脚本714可以在发送之如仅将相关动作聚集在一起。例如,可以将与电子邮件相关联的所有动作聚集在一起,可以将与聊天记录相关联的所有动作聚集在一起等。在另一实施例中,可以捆绑所有动作并同时对其进行发送。在另一实施例中,可以预先确定有效载荷的大小,并发送与可以在预定大小内传送的一样多的动作。
[0055]在一个实施例中,可以以动作如何被置于队列中的顺序(例如以先进先出的方式)对动作进行发送。在其他实施例中,可以以先进后出、后进后出、后进先出或任意其他方式进行排队。
[0056]当主机服务器101接收到动作时,主机服务器101应用期望的动作。例如,如果主机服务器101所接收的动作指示删除消息,则主机服务器101删除该消息。当用户再次访问电子邮件时,该消息被删除并且不再显示在电子邮件收件箱中。
[0057]在一个实施例中,在后台页面脚本发起动作的发送之前,必须关闭与应用相关联的所有网页和/或向后台页面脚本注销所有网页。例如,当一些应用网页打开时,后台页面脚本可能不能与主机服务器同步动作,这是因为具有重复动作的风险增加。因此,为了避免可能对主机服务器造成额外负担的主机服务器进行的重复资料删除(deduping),后台页面脚本等待直到所有网页关闭。在主机服务器上进行重复资料删除可能是复杂的,这是因为由于下线行为,重复动作可能每隔几小时和/或几天发送。
[0058]如果向每一个动作指派唯一的标识,则重复资料删除是可能的。因此,唯一的标识可以用于确保去除重复动作并正确地进行同步。例如,每当在网页上执行动作时,向该动作指派唯一标识。当下一动作发生时,必须获得下一个唯一标识,其中,下一个唯一标识与另一唯一标识不同。因此,所有网页必须与相同的指派代理或指派源(例如主机服务器101)进行通信,以获得唯一标识。然后,主机服务器将接收具有唯一标识的动作。唯一标识指派代理必须以先进先出的实现方式来维护和指派标识。在仅一个设备与主机服务器101进行通信并且该设备是唯一一个被给予执行动作的许可的设备的实施例中,唯一标识可以备选地由设备中所包含的或与设备进行通信的数据库提供。
[0059]在一个实施例中,基于网页将动作排列在一起。例如,网页711-A可以具有需要应用的多个动作,并且网页711-B可以具有需要应用的另外多个动作。针对网页711-A的多个相应动作和针对网页711-B的多个相应动作可以相互分离地存储。在成功地发送队列中存储的动作之后,可以从该队列中移除动作的本地拷贝。在一个实施例中,响应于对动作的成功发送的确认的接收,后台页面脚本从数据库中移除该动作。例如,当向主机服务器101成功地发送动作时(即当设备103处于在线状态时),主机服务器101可以发送确认的接收。然后,可以从数据库204中移除该动作。因此,在设备103 (以及任意其他设备)与主机服务器101之间对动作进行同步。
[0060]在一个实施例中,在一个或更多个网页关闭之后,后台页面脚本向服务器101发送在数据库204中存储的与所关闭的页面相关联的动作。如果在此发送期间,使用设备103的用户发出用于重新打开网页711-B或打开与应用716相关联的另一网页的命令,则后台页面脚本714可以向用户通知其处于忙碌状态。在一个实施例中,后台页面脚本714可以在完成向主机服务器101发送动作之前忽略对打开另一网页或重新打开网页的请求和/或延迟加载网页。在一个实施例中,后台页面脚本714可以在发送完成之前锁定应用和网页。例如,可以向用户提供文本消息框,该文本消息框显示“你的动作正在发送,请稍等片刻。”备选地,可以在发送期间向用户显示诸如沙漏等的图标。在一个实施例中,后台页面脚本714与前台页面之间的双向握手可以向后台请求加载排队的动作的许可。前台页面可以发送用于请求许可的消息。在此期间,在等待响应时,可以显示旋转亮圈或沙漏(如果必要的话)。在接收到许可之后,后台页面脚本714可以在能够安全地加载动作时发送消息。
[0061]在一个实施例中,如果动作的发送不成功(例如接收信号发生中断),则后台页面脚本714预先考虑失败的动作,并向主机服务器101重传失败的动作。
[0062]当已经向主机服务器101发送动作并且设备103保持处于在线状态时,后台页面脚本714然后停止控制动作的发送。也即是说,当设备103返回在线时,网页可以维护其自己的内部动作队列,并直接向主机服务器101发送动作,而无需后台页面脚本714的介入。在一个实施例中,多个网页中的一个网页(例如网页711-B)在数据库204中缓存第二动作,(向主机服务器101)发送该第二动作并通过多个网页中的所述一个网页从数据库214中移除该第二动作。在一个实施例中,当设备103处于在线状态时,网页可以维护其自己的内部动作队列,并且向保存在所有网页中发生的所有动作的通用队列(其可以由后台页面脚本714访问)添加动作。在一个实施例中,在对网页注册时,后台页面脚本714对计数器进行递增。
[0063]在一个实施例中,响应于对第二动作的成功发送的第二确认的接收,发生从数据库204中移除该第二动作。主机服务器101发送该接收。
[0064]在一个实施例中,多个网页中的所述一个网页向后台页面脚本发送不再注册的请求。例如,用户可以关闭网页711-A,因此网页711-A向后台页面脚本714发送不再注册(或注销)的请求。因此,发送该不再注册的请求响应于接收到用户关闭多个网页中的所述一个网页的请求。
[0065]当处于在线状态时,在发送动作队列之后,可以从相应的网页队列以及通用队列中移除这些动作。然而,如果在完全发送动作队列之前设备103离线,则后台页面脚本714取得控制,如上所述。
[0066]在一个实施例中,多个网页中的每一个与以下各项中的至少一项相关联:电子邮件应用;web文档处理应用;多媒体播放器应用;社交媒体网络应用;电子数据表应用;呈现应用;游戏应用;图像编辑应用和视频编辑应用。
[0067]在一个实施例中,定期地重新加载或更新后台页面脚本714,使得在设备103处保持后台页面脚本的最新版本。当在后台页面脚本714中发生更新时,然后必须向后台页面脚本714重新注册所有网页(例如网页711-A和711-B等)。后台页面脚本714可以为上次加载后台页面脚本714写时间戳。然后,所有网页(例如前台页面)可以查看时间戳以确定需要重新注册。前台页面可以监视共享存储设备中的时间戳,并且如果时间戳的值改变则进行重新注册。例如,通过使用HTML(超文本标记语言)5LocalStorage,后台页面脚本714 可以每当加载时执行 window.1ocalStorage.backgroundLoaded = now();。前台页面可以监听属性“backgroundLoaded”上的LocalStorage改变事件,并且每当该值改变时,进行重新注册。
[0068]在一个实施例中,数据库204可以锁定动作以防止重复发送相同动作。
[0069]在一个实施例中,后台页面脚本可以管理所有动作的同步,不论设备是处于在线状态还是处于离线状态。因此,后台页面脚本将管理所有动作的发送。在本实施例中,后台页面脚本必须始终运行。
[0070]图8是根据实施例用于对动作进行同步的方法的流程图。如图8所示,在网页中生成多个动作。因此,当显示网页的设备回到在线状态时,必须与主机服务器同步多个动作。
[0071]在步骤8002处,设备经由互联网访问应用。例如,设备103经由互联网(即网络102)访问应用316。
[0072]在步骤8004处,设备运行与应用相关联的后台页面脚本。设备103运行与应用316相关联的后台页面脚本614。后台页面脚本614可以在应用316的后台运行,如图6所
/Jn ο
[0073]在步骤8006处,在后台页面中注册与该应用相关联的第一网页和与该应用相关联的第二网页。在后台页面脚本614中注册与应用316相关联的第一网页611和与应用316相关联的第二网页612。
[0074]在步骤8008处,当设备处于离线状态时,在数据库中存储第一网页所生成的第一动作和第二网页所生成的第二动作。当设备103处于离线状态时,在数据库204中存储第一网页611所生成的第一动作和第二网页612所生成的第二动作。例如,当设备103处于离线状态时,使用设备103的用户可以希望在网页611中标记重要电子邮件(例如第一动作)并在网页612中删除垃圾电子邮件(例如第二动作)。相应的命令或动作被存储在数据库204中。
[0075]在步骤8010处,确定第一网页和第二网页被关闭。(例如由后台页面脚本614)确定第一网页611和第二网页612被关闭。例如,当完成电子邮件应用时,用户可以关闭网页。
[0076]在步骤8012处,向后台页面注销第一网页和第二网页。在第一网页611和第二网页612被关闭之后,后台页面脚本614可以以上述方式注销第一网页611和第二网页612。因此,后台页面脚本614中的计数器递减,并确定与应用316相关联的所有网页都关闭。
[0077]在步骤8014处,后台页面脚本从数据库取回第一动作和第二动作。后台页面脚本614从数据库204取回第一动作和第二动作。可以以先进先出的方式对第一动作和第二动作进行排队。此外,第一动作和第二动作可以分别包括针对每一个相应网页的聚集动作。设备103可以确定设备103已经返回在线状态。[0078]在步骤8016处,经由互联网向服务器发送第一动作和第二动作。经由互联网(即网络102)向主机服务器101发送第一动作和第二动作。后台页面脚本614可以向主机服务器101发送从数据库204取回的第一动作和第二动作。
[0079]在各种实施例中,可以以与所述或所示的特定顺序不同的顺序来执行本文所述的方法步骤(包括图5和图8中所述的方法步骤)。在其他实施例中,可以提供其他步骤或者可以从所述方法中消除步骤。
[0080]本文所述的系统、装置和方法可以使用数字电路或使用一个或更多个计算机(其使用公知的计算机处理器、存储单元、存储设备、计算机软件和其他组件)实现。一般而言,计算机包括用于执行指令的处理器和用于存储指令和数据的一个或更多个存储器。计算机还可以包括或耦合到一个或更多个大容量存储设备(例如,一个或更多个磁盘、内部硬盘和可拆卸磁盘、磁光盘、光盘等)。
[0081]本文所述的系统、装置和方法可以使用以客户端-服务器关系操作的计算机来实现。一般而言,在这种系统中,客户端计算机远离服务器计算机,并经由网络进行交互。客户端-服务器关系可以由在相应客户端计算机和服务器计算机上运行的计算机程序来定乂和控制。
[0082]可以在基于网络的云计算系统中使用本文所述的系统、装置和方法。在这种基于网络的云计算系统中,与网络相连的服务器或另一处理器经由网络与一个或更多个客户端计算机进行通信。客户端计算机可以经由例如驻留在该客户端计算机上并在该客户端计算机上操作的网络浏览器应用与服务器进行通信。客户端计算机可以在服务器上存储数据,并经由网络访问数据。客户端计算机可以经由网络向服务器发送对数据的请求或对在线服务的请求。服务器可以执行所请求的服务,并向客户端计算机提供数据。服务器还可以发送适合于使客户端计算机执行指定功能(例如执行计算、在屏幕上显示指定数据等)的数据。例如,服务器可以发送适合于使客户端计算机执行本文所述的方法步骤中的一个或更多个方法步骤(包括图5和图8的步骤中的一个或更多个步骤)的请求。本文所述方法的特定步骤(包括图5和图8的步骤中的一个或更多个步骤)可以由基于网络的云计算系统中的服务器或另一处理器运行。本文所述的方法的特定步骤(包括图5和图8的步骤中的一个或更多个步骤)可以由基于网络的云计算系统中的客户端计算机执行。本文所述的方法的步骤(包括图5和图8的步骤中的一个或更多个步骤)可以由基于网络的云计算系统中的服务器和/或客户端计算机以任意组合运行。
[0083]可以使用计算机程序产品来实现本文所述的系统、装置和方法,该计算机程序产品有形地具体实现在信息载体(例如非瞬时机器可读存储设备)中以由可编程处理器执行;并且可以使用可以由这种处理器执行的一个或更多个计算机程序来执行本文所述的方法步骤(包括图5和图8的步骤中的一个或更多个步骤)。计算机程序是可以直接地或间接地在计算机中使用以执行特定活动或引起特定结果的计算机程序指令的集合。可以以任意形式的编程语言(包括编译性语言或解释性语言)来写计算机程序,并且可以以任意形式(包括作为独立程序或作为模块、组件、子例程或适合于在计算环境中使用的其他单元)部署计算机程序。
[0084]图9中示出了可以用于实现本文所述的系统、装置和方法的示例性计算机的高层次框图。计算机900包括与数据存储设备902和存储器903可操作地耦合的处理器901。处理器901通过执行定义这些操作的计算机程序指令来控制计算机900的整体操作。计算机程序指令可以存储在数据存储设备902或其他计算机可读介质中,并可以在期望执行该计算机程序指令时被加载到存储器903中。因此,图5和图8的方法步骤可以由在存储器903和/或数据存储设备902中存储的计算机程序指令来定义并由执行计算机程序指令的处理器901来控制。例如,计算机程序指令可以实现为由本领域技术人员编程以执行图5和图8的方法步骤所定义的算法的计算机可执行代码。因此,通过执行计算机程序指令,处理器901执行图5和图8的方法步骤所定义的算法。计算机900还包括用于经由网络与其他设备进行通信的一个或更多个网络接口 904。计算机900还包括能够实现与计算机900的用户交互的一个或更多个输入/输出设备905 (例如显示器、键盘、鼠标、扬声器、按钮等)。
[0085]处理器901可以包括通用微处理器和专用微处理器,并且可以是计算机900的单个处理器或多个处理器之一。处理器901可以包括例如一个或更多个中央处理单元(CPU)。处理器901、数据存储设备902和/或存储器903可以包括以下各项、由以下各项补充或者并入到以下各项中:一个或多个专用集成电路(ASIC)和/或一个或多个现场可编程门阵列(FPGA)。
[0086]数据存储设备902和存储器903均包括有形非瞬时计算机可读存储介质。数据存储设备902和存储器903均可以包括高速随机存取存储器,例如,动态随机存取存储器(DRAM)、静态随机存取存储器(SRAM)、双倍数据速率同步动态随机存取存储器(DDR RAM)或其他随机存取固态存储设备,并可以包括非易失性存储器,例如,一个或更多个磁盘存储设备(例如内部硬盘和可拆卸磁盘)、磁光盘存储设备、光盘存储设备、闪存设备、半导体存储设备(例如,可擦写可编程只读存储器(EPROM)、电可擦写可编程只读存储器(EEPROM))、压缩光盘只读存储器(⑶-ROM)、数字多功能光盘只读存储器(DVD-ROM)盘或其他非易失性固态存储设备。
[0087]输入/输出设备905可以包括外围设备(例如,打印机、扫描仪、显示屏等)。例如,输入/输出设备905可以包括:用于向用户显示信息的显示设备(例如,阴极射线管(CRT)监视器或液晶显示器(LCD)监视器)、键盘和用户可以使用以向计算机900提供输入的定点设备(例如鼠标或轨迹球)。
[0088]可以使用计算机(例如计算机900)来实现本文所讨论的系统和装置(包括设备103、主机服务器101、浏览器201、显示器202、存储器203、数据库204、处理器205、处理器302、存储器303和应用316)中的任意一个或全部。
[0089]本领域技术人员将认识到,实际计算机或计算机系统的实现也可以具有其他结构并可以包含其他组件,并且图9是这种计算机的组件中的一些组件的高层次表示以用于说明的目的。
[0090]前面的详细描述应被理解为在每一个方面都是说明性和示例性的,而不是限制性的,并且本文公开的本发明的范围不应根据详细描述来确定,而是如根据专利法准许的全部范围所解释的根据权利要求来确定。将理解的是,本文所示和描述的实施例仅说明本发明的原理并且本领域技术人员可以在不偏离本发明的范围和精神的情况下执行多个修改。本领域技术人员可以在不偏离本发明的范围和精神的情况下实现多个其他特征组合。
【权利要求】
1.一种方法,包括: 向在设备上运行的后台页面脚本注册在所述设备上运行的多个网页; 在数据库中缓存所述多个网页中的一个网页所生成的动作;以及 响应于确定所述设备处于在线状态以及不再注册所述多个网页中的所述一个网页: 所述后台页面脚本从所述数据库取回所述动作;以及 所述后台页面脚本发送所述动作。
2.根据权利要求1所述的方法,还包括: 所述后台页面脚本向主机服务器发送所述动作。
3.根据权利要求1所述的方法,还包括: 所述后台页面脚本响应于对所述动作的成功发送的确认的接收,从所述数据库中移除所述动作。
4.根据权利要求3所述的方法,还包括: 所述多个网页中的所述一个网页在所述数据库中缓存第二动作; 所述多个网页中的所述一个网页发送所述第二动作;以及 所述多个网页中的所述一个网页从所述数据库中移除所述第二动作。
5.根据权利要求4所述的方法,还包括: 所述多个网页中的所述一个网页向所述后台页面脚本发送不再注册的请求。
6.根据权利要求4所述的方法,其中,响应于对所述第二动作的成功发送的第二确认的接收,发生从所述数据库中移除所述第二动作。
7.根据权利要求5所述的方法,还包括: 响应于接收到用户关闭所述多个网页中的所述一个网页的请求,发送所述不再注册的请求。
8.根据权利要求1所述的方法,还包括: 在所述数据库中锁定所述动作。
9.一种存储有计算机程序指令的非瞬时性计算机可读介质,当在处理器上执行所述计算机程序指令时,所述计算机程序指令使所述处理器执行包括以下步骤的方法: 向在设备上运行的后台页面脚本注册在所述设备上运行的多个网页; 在数据库中缓存所述多个网页中的一个网页所生成的动作;以及 响应于确定所述设备处于在线状态以及不再注册所述多个网页中的所述一个网页: 所述后台页面脚本从所述数据库取回所述动作;以及 所述后台页面脚本发送所述动作。
10.根据权利要求9所述的非瞬时性计算机可读介质,还包括定义以下步骤的指令: 所述后台页面脚本向主机服务器发送所述动作。
11.根据权利要求9所述的非瞬时性计算机可读介质,还包括定义以下步骤的指令: 所述后台页面脚本响应于对所述动作的成功发送的确认的接收,从所述数据库中移除所述动作。
12.根据权利要求11所述的非瞬时性计算机可读介质,还包括定义以下步骤的指令: 所述多个网页中的所述一个网页在所述数据库中缓存第二动作; 所述多个网页中的所述一个网页发送所述第二动作;以及所述多个网页中的所述一个网页从所述数据库中移除所述第二动作。
13.根据权利要求12所述的非瞬时性计算机可读介质,还包括定义以下步骤的指令: 所述多个网页中的所述一个网页向所述后台页面脚本发送不再注册的请求。
14.根据权利要求12所述的非瞬时性计算机可读介质,其中,响应于对所述第二动作的成功发送的第二确认的接收,发生从所述数据库中移除所述第二动作。
15.根据权利要求13所述的非瞬时性计算机可读介质,其中,响应于接收到用户关闭所述多个网页中的所述一个网页的请求,发送所述不再注册的请求。
16.根据权利要求9所述的非瞬时性计算机可读介质,还包括定义以下步骤的指令: 在所述数据库中锁定所述动作。
17.一种方法,包括: 设备经由互联网访问应用; 所述设备运行与所述应用相关联的后台页面脚本; 在后台页面中注册与所述应用相关联的第一网页和与所述应用相关联的第二网页;当所述设备处于离线状态时,在数据库中存储所述第一网页所生成的第一动作和所述第二网页所生成的第二动作; 确定所述第一网页和所述第二网页被关闭; 向所述后台页面注销所述第一网页和所述第二网页; 所述后台页面脚本从所述数据库取回所述第一动作和所述第二动作;以及 经由所述互联网向服务器发送所述第一动作和所述第二动作。
18.根据权利要求17所述的方法,还包括: 所述后台页面脚本响应于来自所述服务器的对所述第一动作和所述第二动作的成功发送的确认的接收,从所述数据库中移除所述第一动作和所述第二动作。
19.根据权利要求17所述的方法,其中,所述注销响应于接收到不再注册所述第一网页和所述第二网页的请求。
20.根据权利要求17所述的方法,其中,所述第一网页和所述第二网页中至少一个与以下各项中的至少一项相关联: 电子邮件应用; web文档处理应用; 多媒体播放器应用; 社交媒体网络应用; 电子数据表应用; 呈现应用; 游戏应用; 图像编辑应用;以及 视频编辑应用。
【文档编号】G06F17/30GK103765420SQ201280042062
【公开日】2014年4月30日 申请日期:2012年8月17日 优先权日:2011年8月31日
【发明者】马修·博洛汗 申请人:谷歌公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1