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

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

Info

Publication number
CN107741977A
CN107741977A CN201710960402.XA CN201710960402A CN107741977A CN 107741977 A CN107741977 A CN 107741977A CN 201710960402 A CN201710960402 A CN 201710960402A CN 107741977 A CN107741977 A CN 107741977A
Authority
CN
China
Prior art keywords
action
web
application
electronic information
transmitting
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN201710960402.XA
Other languages
English (en)
Other versions
CN107741977B (zh
Inventor
马修·博洛汗
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Google LLC
Original Assignee
Google LLC
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Google LLC filed Critical Google LLC
Publication of CN107741977A publication Critical patent/CN107741977A/zh
Application granted granted Critical
Publication of CN107741977B publication Critical patent/CN107741977B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/27Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/957Browsing optimisation, e.g. caching or content distillation
    • G06F16/9574Browsing optimisation, e.g. caching or content distillation of access to content, e.g. by caching
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/23Updating
    • G06F16/2379Updates performed during online database operations; commit processing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1095Replication or mirroring of data, e.g. scheduling or transport for data synchronisation between network nodes

Landscapes

  • Engineering & Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

本申请涉及用于在应用的后台对动作进行同步的系统和方法。后台页面脚本在设备上运行。多个网页在该设备上运行。向后台页面脚本注册多个网页。在数据库中缓存多个网页中的一个网页所生成的动作。响应于确定设备处于在线状态以及不再注册多个网页中的一个网页,后台页面脚本从数据库取回动作并发送动作。

Description

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

Claims (20)

1.一种用于在应用的后台对动作进行同步的方法,所述方法包括:
在具有一个或多个处理器和存储一个或多个用于由所述一个或多个处理器执行的程序的存储器的客户端设备处:
检测基于web的消息收发应用的实例已经被打开;
向在所述客户端设备上运行的后台应用注册所述基于web的消息收发应用的所述实例;
接收与电子消息相关的动作,其中与所述电子消息有关的至少一些信息本地存储在所述客户端设备上;
依据确定所述客户端设备处于离线状态,缓存所接收的与所述电子消息相关的动作;以及
响应于确定在所述后台应用不包括所述基于web的消息收发应用的任何注册实例时所述客户端设备已经从所述离线状态转换至在线状态,发送所缓存的与所述电子消息相关的动作。
2.根据权利要求1所述的方法,其中,所述动作是发送动作并且所述电子消息是待从所述基于web的消息收发应用发送至远程接收者的草拟消息,其中,所述电子消息特别定址至所述远程接收者。
3.根据权利要求1所述的方法,其中,所述电子消息是电子邮件(email)消息或电子聊天消息中的一个。
4.根据权利要求1所述的方法,其中,所述动作选自包含以下的群组:发送动作、下载动作、用星号标记动作、编辑动作、移动到文件夹动作、标记为重要动作、保存动作、以及添加附件动作。
5.根据权利要求1所述的方法,还包括:
在接收到与所述电子消息相关的动作之后,检测所述基于web的消息收发应用的所述实例已经被关闭;以及
在确定所述客户端设备已经从所述离线状态转换至所述在线状态之前,并且响应于检测到所述基于web的消息收发应用的所述实例已经被关闭,向所述后台应用注销所述基于web的消息收发应用的所述实例。
6.根据权利要求1所述的方法,其中,所述后台应用是在所述客户端设备上执行的后台页面脚本。
7.根据权利要求1所述的方法,其中:
所述后台应用包括所述基于web的消息收发应用的注册实例的计数器;
注册所述基于web的消息收发应用使所述计数器递增1;
注销所述基于web的消息收发应用使所述计数器递减1;以及
确定所述后台应用不包括所述基于web的消息收发应用的任何注册实例包括确定所述计数器处于0。
8.根据权利要求1所述的方法,
其中,所缓存的电子消息被发送至主机服务器;以及
所述方法还包括,在向所述主机服务器发送与所述电子消息相关的所述动作期间,锁定所缓存的动作以防止发送所述动作的重复实例。
9.根据权利要求8所述的方法,其中,所接收的与所述电子消息相关的动作被缓存在数据库中,以及
所述方法还包括:
响应于接收到所述主机服务器对在所述主机服务器处的所述动作的成功执行的确认而从所述数据库移除所缓存的与所述电子消息相关的动作。
10.一种存储计算机程序指令的非瞬时计算机可读存储介质,所述计算机程序指令在利用处理器来在客户端设备上执行时,使得所述处理器执行操作,所述操作包括:
检测基于web的消息收发应用的实例已经被打开;
向在所述客户端设备上运行的后台应用注册所述基于web的消息收发应用的所述实例;
接收与电子消息相关的动作,其中,与所述电子消息有关的至少一些信息本地存储在所述客户端设备上;
依据确定所述客户端设备处于离线状态,缓存所接收的与所述电子消息相关的动作;以及
响应于确定在所述后台应用不包括所述基于web的消息收发应用的任何注册实例时所述客户端设备已经从所述离线状态转换至在线状态,发送所缓存的与所述电子消息相关的动作。
11.根据权利要求10所述的非瞬时计算机可读存储介质,其中,所述动作是发送动作并且所述电子消息是待从所述基于web的消息收发应用发送至远程接收者的草拟消息,其中,所述电子消息特别定址至所述远程接收者。
12.根据权利要求10所述的非瞬时计算机可读存储介质,其中,所述电子消息是电子邮件(email)消息或电子聊天消息中的一个。
13.根据权利要求10所述的非瞬时计算机可读存储介质,其中,所述动作选自包含以下的群组:发送动作、下载动作、用星号标记动作、编辑动作、移动到文件夹动作、标记为重要动作、保存动作、以及添加附件动作。
14.根据权利要求10所述的非瞬时计算机可读存储介质,其中,所述操作还包括:
在接收到与所述电子消息相关的动作之后,检测所述基于web的消息收发应用的所述实例已经被关闭;以及
在确定所述客户端设备已经从所述离线状态转换至所述在线状态之前,并且响应于检测到所述基于web的消息收发应用的所述实例已经被关闭,向所述后台应用注销所述基于web的消息收发应用的所述实例。
15.根据权利要求10所述的非瞬时计算机可读存储介质,其中,所述后台应用是在所述客户端设备上执行的后台页面脚本。
16.根据权利要求10所述的非瞬时计算机可读存储介质,其中:
所述后台应用包括所述基于web的消息收发应用的注册实例的计数器;
注册所述基于web的消息收发应用使所述计数器递增1;
注销所述基于web的消息收发应用使所述计数器递减1;以及
确定所述后台应用不包括所述基于web的消息收发应用的任何注册实例包括确定所述计数器处于0。
17.根据权利要求10所述的非瞬时计算机可读存储介质,
其中,所缓存的电子消息被发送至主机服务器;以及
所述操作还包括,在向所述主机服务器发送与所述电子消息相关的所述动作期间,锁定所缓存的动作以防止发送所述动作的重复实例。
18.根据权利要求17所述的非瞬时计算机可读存储介质,
其中,所接收的与所述电子消息相关的动作被缓存在数据库中,以及
所述方法还包括:
响应于接收到所述主机服务器对在所述主机服务器处的所述动作的成功执行的确认而从所述数据库移除所缓存的与所述电子消息相关的动作。
19.一种客户端设备,包括:
处理器;以及
存储器,存储一个或多个计算机程序,所述计算机程序包括指令,所述指令在所述处理器上执行时使得所述处理器执行操作,所述操作包括:
检测基于web的消息收发应用的实例已经被打开;
向在所述客户端设备上运行的后台应用注册所述基于web的消息收发应用的所述实例;
接收与电子消息相关的动作,其中,与所述电子消息有关的至少一些信息本地存储在所述客户端设备上;
依据确定所述客户端设备处于离线状态,缓存所接收的与所述电子消息相关的动作;以及
响应于确定在所述后台应用不包括所述基于web的消息收发应用的任何注册实例时所述客户端设备已经从所述离线状态转换至在线状态,发送所缓存的与所述电子消息相关的动作。
20.根据权利要求19所述的客户端设备,其中,所述动作是发送动作并且所述电子消息是待从所述基于web的消息收发应用发送至远程接收者的草拟消息,其中,所述电子消息特别定址至所述远程接收者。
CN201710960402.XA 2011-08-31 2012-08-17 用于在应用的后台对动作进行同步的系统和方法 Active CN107741977B (zh)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201161529646P 2011-08-31 2011-08-31
US61/529,646 2011-08-31
US13/463,131 2012-05-03
US13/463,131 US8554729B2 (en) 2011-08-31 2012-05-03 System and method for synchronization of actions in the background of an application
CN201280042062.8A CN103765420B (zh) 2011-08-31 2012-08-17 用于在应用的后台对动作进行同步的系统和方法

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
CN201280042062.8A Division CN103765420B (zh) 2011-08-31 2012-08-17 用于在应用的后台对动作进行同步的系统和方法

Publications (2)

Publication Number Publication Date
CN107741977A true CN107741977A (zh) 2018-02-27
CN107741977B CN107741977B (zh) 2021-08-03

Family

ID=47745111

Family Applications (2)

Application Number Title Priority Date Filing Date
CN201280042062.8A Active CN103765420B (zh) 2011-08-31 2012-08-17 用于在应用的后台对动作进行同步的系统和方法
CN201710960402.XA Active CN107741977B (zh) 2011-08-31 2012-08-17 用于在应用的后台对动作进行同步的系统和方法

Family Applications Before (1)

Application Number Title Priority Date Filing Date
CN201280042062.8A Active CN103765420B (zh) 2011-08-31 2012-08-17 用于在应用的后台对动作进行同步的系统和方法

Country Status (5)

Country Link
US (2) US8554729B2 (zh)
EP (1) EP2751718B1 (zh)
CN (2) CN103765420B (zh)
DE (1) DE202012013479U1 (zh)
WO (1) WO2013032736A1 (zh)

Families Citing this family (153)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8677377B2 (en) 2005-09-08 2014-03-18 Apple Inc. Method and apparatus for building an intelligent automated assistant
US9318108B2 (en) 2010-01-18 2016-04-19 Apple Inc. Intelligent automated assistant
US8977255B2 (en) 2007-04-03 2015-03-10 Apple Inc. Method and system for operating a multi-function portable electronic device using voice-activation
US10002189B2 (en) 2007-12-20 2018-06-19 Apple Inc. Method and apparatus for searching using an active ontology
US9330720B2 (en) 2008-01-03 2016-05-03 Apple Inc. Methods and apparatus for altering audio output signals
US8996376B2 (en) 2008-04-05 2015-03-31 Apple Inc. Intelligent text-to-speech conversion
US20100030549A1 (en) 2008-07-31 2010-02-04 Lee Michael M Mobile device having human language translation capability with positional feedback
US8676904B2 (en) 2008-10-02 2014-03-18 Apple Inc. Electronic devices with voice command and contextual data processing capabilities
US10241752B2 (en) 2011-09-30 2019-03-26 Apple Inc. Interface for a virtual digital assistant
US10241644B2 (en) 2011-06-03 2019-03-26 Apple Inc. Actionable reminder entries
US10706373B2 (en) 2011-06-03 2020-07-07 Apple Inc. Performing actions associated with task items that represent tasks to perform
US9431006B2 (en) 2009-07-02 2016-08-30 Apple Inc. Methods and apparatuses for automatic speech recognition
US10276170B2 (en) 2010-01-18 2019-04-30 Apple Inc. Intelligent automated assistant
US8682667B2 (en) 2010-02-25 2014-03-25 Apple Inc. User profiling for selecting user specific voice input processing information
US20120204114A1 (en) * 2011-02-08 2012-08-09 Oscix, Llc Mobile application framework
US9262612B2 (en) 2011-03-21 2016-02-16 Apple Inc. Device access using voice authentication
US10057736B2 (en) 2011-06-03 2018-08-21 Apple Inc. Active transport based notifications
SG190505A1 (en) * 2011-11-24 2013-06-28 Chikka Pte Ltd System and method for detecting broadband service and a charging mechanism for same
US10134385B2 (en) 2012-03-02 2018-11-20 Apple Inc. Systems and methods for name pronunciation
US10417037B2 (en) 2012-05-15 2019-09-17 Apple Inc. Systems and methods for integrating third party services with a digital assistant
US9721563B2 (en) 2012-06-08 2017-08-01 Apple Inc. Name recognition system
US9547647B2 (en) 2012-09-19 2017-01-17 Apple Inc. Voice-based media searching
TWI511513B (zh) * 2012-11-14 2015-12-01 Wistron Corp 用於網路系統之偵測方法及其相關裝置
BR112015018905B1 (pt) 2013-02-07 2022-02-22 Apple Inc Método de operação de recurso de ativação por voz, mídia de armazenamento legível por computador e dispositivo eletrônico
US10652394B2 (en) 2013-03-14 2020-05-12 Apple Inc. System and method for processing voicemail
US10748529B1 (en) 2013-03-15 2020-08-18 Apple Inc. Voice activated device for use with a voice-based digital assistant
US9826024B2 (en) * 2013-04-01 2017-11-21 Autodesk, Inc. Server side video screen capture
CN104216794A (zh) * 2013-06-04 2014-12-17 北大方正集团有限公司 用于稿件编辑的灾备方法和装置
WO2014197334A2 (en) 2013-06-07 2014-12-11 Apple Inc. System and method for user-specified pronunciation of words for speech synthesis and recognition
WO2014197335A1 (en) 2013-06-08 2014-12-11 Apple Inc. Interpreting and acting upon commands that involve sharing information with remote devices
US10176167B2 (en) 2013-06-09 2019-01-08 Apple Inc. System and method for inferring user intent from speech inputs
EP3937002A1 (en) 2013-06-09 2022-01-12 Apple Inc. Device, method, and graphical user interface for enabling conversation persistence across two or more instances of a digital assistant
CN104346158B (zh) * 2013-08-09 2017-11-21 华为终端(东莞)有限公司 一种处理级联页面的方法和用户设备
US10296160B2 (en) 2013-12-06 2019-05-21 Apple Inc. Method for extracting salient dialog usage from live data
US10067652B2 (en) * 2013-12-24 2018-09-04 Dropbox, Inc. Providing access to a cloud based content management system on a mobile device
US9544373B2 (en) 2013-12-24 2017-01-10 Dropbox, Inc. Systems and methods for maintaining local virtual states pending server-side storage across multiple devices and users and intermittent network connections
US9633004B2 (en) 2014-05-30 2017-04-25 Apple Inc. Better resolution when referencing to concepts
TWI566107B (zh) 2014-05-30 2017-01-11 蘋果公司 用於處理多部分語音命令之方法、非暫時性電腦可讀儲存媒體及電子裝置
US10170123B2 (en) 2014-05-30 2019-01-01 Apple Inc. Intelligent assistant for home automation
US9430463B2 (en) 2014-05-30 2016-08-30 Apple Inc. Exemplar-based natural language processing
US9715875B2 (en) 2014-05-30 2017-07-25 Apple Inc. Reducing the need for manual start/end-pointing and trigger phrases
US9338493B2 (en) 2014-06-30 2016-05-10 Apple Inc. Intelligent automated assistant for TV user interactions
US9818400B2 (en) 2014-09-11 2017-11-14 Apple Inc. Method and apparatus for discovering trending terms in speech requests
US10074360B2 (en) 2014-09-30 2018-09-11 Apple Inc. Providing an indication of the suitability of speech recognition
US10127911B2 (en) 2014-09-30 2018-11-13 Apple Inc. Speaker identification and unsupervised speaker adaptation techniques
US9668121B2 (en) 2014-09-30 2017-05-30 Apple Inc. Social reminders
CN104333588B (zh) * 2014-10-31 2017-11-03 北京奇安信科技有限公司 一种网页计时的方法及装置
US10152299B2 (en) 2015-03-06 2018-12-11 Apple Inc. Reducing response latency of intelligent automated assistants
US9721566B2 (en) 2015-03-08 2017-08-01 Apple Inc. Competing devices responding to voice triggers
US10567477B2 (en) 2015-03-08 2020-02-18 Apple Inc. Virtual assistant continuity
US9886953B2 (en) 2015-03-08 2018-02-06 Apple Inc. Virtual assistant activation
US10460227B2 (en) 2015-05-15 2019-10-29 Apple Inc. Virtual assistant in a communication session
US10083688B2 (en) 2015-05-27 2018-09-25 Apple Inc. Device voice control for selecting a displayed affordance
US10200824B2 (en) 2015-05-27 2019-02-05 Apple Inc. Systems and methods for proactively identifying and surfacing relevant content on a touch-sensitive device
US9578173B2 (en) 2015-06-05 2017-02-21 Apple Inc. Virtual assistant aided communication with 3rd party service in a communication session
US11025565B2 (en) 2015-06-07 2021-06-01 Apple Inc. Personalized prediction of responses for instant messaging
US20160378747A1 (en) 2015-06-29 2016-12-29 Apple Inc. Virtual assistant for media playback
US10747498B2 (en) 2015-09-08 2020-08-18 Apple Inc. Zero latency digital assistant
US10740384B2 (en) 2015-09-08 2020-08-11 Apple Inc. Intelligent automated assistant for media search and playback
US10671428B2 (en) 2015-09-08 2020-06-02 Apple Inc. Distributed personal assistant
US10331312B2 (en) 2015-09-08 2019-06-25 Apple Inc. Intelligent automated assistant in a media environment
US10366158B2 (en) 2015-09-29 2019-07-30 Apple Inc. Efficient word encoding for recurrent neural network language models
US11010550B2 (en) 2015-09-29 2021-05-18 Apple Inc. Unified language modeling framework for word prediction, auto-completion and auto-correction
US10691473B2 (en) 2015-11-06 2020-06-23 Apple Inc. Intelligent automated assistant in a messaging environment
US10956666B2 (en) 2015-11-09 2021-03-23 Apple Inc. Unconventional virtual assistant interactions
US10049668B2 (en) 2015-12-02 2018-08-14 Apple Inc. Applying neural network language models to weighted finite state transducers for automatic speech recognition
US10223066B2 (en) 2015-12-23 2019-03-05 Apple Inc. Proactive assistance based on dialog communication between devices
US10446143B2 (en) 2016-03-14 2019-10-15 Apple Inc. Identification of voice inputs providing credentials
US9934775B2 (en) 2016-05-26 2018-04-03 Apple Inc. Unit-selection text-to-speech synthesis based on predicted concatenation parameters
US9972304B2 (en) 2016-06-03 2018-05-15 Apple Inc. Privacy preserving distributed evaluation framework for embedded personalized systems
US10249300B2 (en) 2016-06-06 2019-04-02 Apple Inc. Intelligent list reading
US11227589B2 (en) 2016-06-06 2022-01-18 Apple Inc. Intelligent list reading
US10049663B2 (en) 2016-06-08 2018-08-14 Apple, Inc. Intelligent automated assistant for media exploration
DK179588B1 (en) 2016-06-09 2019-02-22 Apple Inc. INTELLIGENT AUTOMATED ASSISTANT IN A HOME ENVIRONMENT
US10192552B2 (en) 2016-06-10 2019-01-29 Apple Inc. Digital assistant providing whispered speech
US10586535B2 (en) 2016-06-10 2020-03-10 Apple Inc. Intelligent digital assistant in a multi-tasking environment
US10509862B2 (en) 2016-06-10 2019-12-17 Apple Inc. Dynamic phrase expansion of language input
US10067938B2 (en) 2016-06-10 2018-09-04 Apple Inc. Multilingual word prediction
US10490187B2 (en) 2016-06-10 2019-11-26 Apple Inc. Digital assistant providing automated status report
DK201670540A1 (en) 2016-06-11 2018-01-08 Apple Inc Application integration with a digital assistant
DK179415B1 (en) 2016-06-11 2018-06-14 Apple Inc Intelligent device arbitration and control
DK179343B1 (en) 2016-06-11 2018-05-14 Apple Inc Intelligent task discovery
DK179049B1 (en) 2016-06-11 2017-09-18 Apple Inc Data driven natural language event detection and classification
US10474753B2 (en) 2016-09-07 2019-11-12 Apple Inc. Language identification using recurrent neural networks
US10043516B2 (en) 2016-09-23 2018-08-07 Apple Inc. Intelligent automated assistant
US11281993B2 (en) 2016-12-05 2022-03-22 Apple Inc. Model and ensemble compression for metric learning
US10593346B2 (en) 2016-12-22 2020-03-17 Apple Inc. Rank-reduced token representation for automatic speech recognition
US11204787B2 (en) 2017-01-09 2021-12-21 Apple Inc. Application integration with a digital assistant
CN107066611B (zh) * 2017-05-04 2020-05-15 浙江数链科技有限公司 页面返回装置与方法
US10417266B2 (en) 2017-05-09 2019-09-17 Apple Inc. Context-aware ranking of intelligent response suggestions
DK201770383A1 (en) 2017-05-09 2018-12-14 Apple Inc. USER INTERFACE FOR CORRECTING RECOGNITION ERRORS
DK201770439A1 (en) 2017-05-11 2018-12-13 Apple Inc. Offline personal assistant
US10395654B2 (en) 2017-05-11 2019-08-27 Apple Inc. Text normalization based on a data-driven learning network
DK180048B1 (en) 2017-05-11 2020-02-04 Apple Inc. MAINTAINING THE DATA PROTECTION OF PERSONAL INFORMATION
US10726832B2 (en) 2017-05-11 2020-07-28 Apple Inc. Maintaining privacy of personal information
DK179496B1 (en) 2017-05-12 2019-01-15 Apple Inc. USER-SPECIFIC Acoustic Models
US11301477B2 (en) 2017-05-12 2022-04-12 Apple Inc. Feedback analysis of a digital assistant
DK179745B1 (en) 2017-05-12 2019-05-01 Apple Inc. SYNCHRONIZATION AND TASK DELEGATION OF A DIGITAL ASSISTANT
DK201770427A1 (en) 2017-05-12 2018-12-20 Apple Inc. LOW-LATENCY INTELLIGENT AUTOMATED ASSISTANT
DK201770431A1 (en) 2017-05-15 2018-12-20 Apple Inc. Optimizing dialogue policy decisions for digital assistants using implicit feedback
DK201770432A1 (en) 2017-05-15 2018-12-21 Apple Inc. Hierarchical belief states for digital assistants
DK179560B1 (en) 2017-05-16 2019-02-18 Apple Inc. FAR-FIELD EXTENSION FOR DIGITAL ASSISTANT SERVICES
US10403278B2 (en) 2017-05-16 2019-09-03 Apple Inc. Methods and systems for phonetic matching in digital assistant services
US20180336275A1 (en) 2017-05-16 2018-11-22 Apple Inc. Intelligent automated assistant for media exploration
US20180336892A1 (en) 2017-05-16 2018-11-22 Apple Inc. Detecting a trigger of a digital assistant
US10311144B2 (en) 2017-05-16 2019-06-04 Apple Inc. Emoji word sense disambiguation
US10657328B2 (en) 2017-06-02 2020-05-19 Apple Inc. Multi-task recurrent neural network architecture for efficient morphology handling in neural language modeling
CN110020268B (zh) * 2017-07-28 2022-04-12 北京国双科技有限公司 页面返回方法及装置
US10445429B2 (en) 2017-09-21 2019-10-15 Apple Inc. Natural language understanding using vocabularies with compressed serialized tries
US10755051B2 (en) 2017-09-29 2020-08-25 Apple Inc. Rule-based natural language processing
US10636424B2 (en) 2017-11-30 2020-04-28 Apple Inc. Multi-turn canned dialog
US10733982B2 (en) 2018-01-08 2020-08-04 Apple Inc. Multi-directional dialog
US10733375B2 (en) 2018-01-31 2020-08-04 Apple Inc. Knowledge-based framework for improving natural language understanding
US10789959B2 (en) 2018-03-02 2020-09-29 Apple Inc. Training speaker recognition models for digital assistants
US10592604B2 (en) 2018-03-12 2020-03-17 Apple Inc. Inverse text normalization for automatic speech recognition
US10818288B2 (en) 2018-03-26 2020-10-27 Apple Inc. Natural assistant interaction
US10909331B2 (en) 2018-03-30 2021-02-02 Apple Inc. Implicit identification of translation payload with neural machine translation
US11145294B2 (en) 2018-05-07 2021-10-12 Apple Inc. Intelligent automated assistant for delivering content from user experiences
US10928918B2 (en) 2018-05-07 2021-02-23 Apple Inc. Raise to speak
US10984780B2 (en) 2018-05-21 2021-04-20 Apple Inc. Global semantic word embeddings using bi-directional recurrent neural networks
DK201870355A1 (en) 2018-06-01 2019-12-16 Apple Inc. VIRTUAL ASSISTANT OPERATION IN MULTI-DEVICE ENVIRONMENTS
US11386266B2 (en) 2018-06-01 2022-07-12 Apple Inc. Text correction
DK179822B1 (da) 2018-06-01 2019-07-12 Apple Inc. Voice interaction at a primary device to access call functionality of a companion device
US10892996B2 (en) 2018-06-01 2021-01-12 Apple Inc. Variable latency device coordination
DK180639B1 (en) 2018-06-01 2021-11-04 Apple Inc DISABILITY OF ATTENTION-ATTENTIVE VIRTUAL ASSISTANT
US11076039B2 (en) 2018-06-03 2021-07-27 Apple Inc. Accelerated task performance
US11010561B2 (en) 2018-09-27 2021-05-18 Apple Inc. Sentiment prediction from textual data
US10839159B2 (en) 2018-09-28 2020-11-17 Apple Inc. Named entity normalization in a spoken dialog system
US11462215B2 (en) 2018-09-28 2022-10-04 Apple Inc. Multi-modal inputs for voice commands
US11170166B2 (en) 2018-09-28 2021-11-09 Apple Inc. Neural typographical error modeling via generative adversarial networks
US11475898B2 (en) 2018-10-26 2022-10-18 Apple Inc. Low-latency multi-speaker speech recognition
CN109471990A (zh) * 2018-11-15 2019-03-15 用友网络科技股份有限公司 一种数据处理方法及数据处理装置
GB201818892D0 (en) * 2018-11-20 2019-01-02 Ve Global Uk Ltd Initiating a software application in dependence detection of closure of multiple web pages associated with the software application
CN109710582B (zh) * 2018-12-13 2021-10-26 创新科技术有限公司 一种共享目录管理方法和装置
US11638059B2 (en) 2019-01-04 2023-04-25 Apple Inc. Content playback on multiple devices
US11348573B2 (en) 2019-03-18 2022-05-31 Apple Inc. Multimodality in digital assistant systems
US11307752B2 (en) 2019-05-06 2022-04-19 Apple Inc. User configurable task triggers
DK201970509A1 (en) 2019-05-06 2021-01-15 Apple Inc Spoken notifications
US11475884B2 (en) 2019-05-06 2022-10-18 Apple Inc. Reducing digital assistant latency when a language is incorrectly determined
US11423908B2 (en) 2019-05-06 2022-08-23 Apple Inc. Interpreting spoken requests
US11140099B2 (en) 2019-05-21 2021-10-05 Apple Inc. Providing message response suggestions
US11289073B2 (en) 2019-05-31 2022-03-29 Apple Inc. Device text to speech
DK180129B1 (en) 2019-05-31 2020-06-02 Apple Inc. USER ACTIVITY SHORTCUT SUGGESTIONS
DK201970511A1 (en) 2019-05-31 2021-02-15 Apple Inc Voice identification in digital assistant systems
US11496600B2 (en) 2019-05-31 2022-11-08 Apple Inc. Remote execution of machine-learned models
US11360641B2 (en) 2019-06-01 2022-06-14 Apple Inc. Increasing the relevance of new available information
US11468890B2 (en) 2019-06-01 2022-10-11 Apple Inc. Methods and user interfaces for voice-based control of electronic devices
WO2021056255A1 (en) 2019-09-25 2021-04-01 Apple Inc. Text detection using global geometry estimators
US11061543B1 (en) 2020-05-11 2021-07-13 Apple Inc. Providing relevant data items based on context
US11183193B1 (en) 2020-05-11 2021-11-23 Apple Inc. Digital assistant hardware abstraction
US11755276B2 (en) 2020-05-12 2023-09-12 Apple Inc. Reducing description length based on confidence
US11490204B2 (en) 2020-07-20 2022-11-01 Apple Inc. Multi-device audio adjustment coordination
US11438683B2 (en) 2020-07-21 2022-09-06 Apple Inc. User identification using headphones

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030217152A1 (en) * 2002-05-15 2003-11-20 Adc Dsl Systems, Inc. Resource sharing with database synchronization
US20050210081A1 (en) * 2004-03-18 2005-09-22 Alcatel Data synchronization method
US20060034621A1 (en) * 2004-08-12 2006-02-16 Finisar Corporation Transimpedance amplifier with integrated filtering and reduced parasitic capacitance
CN1831827A (zh) * 2005-03-11 2006-09-13 国际商业机器公司 对电子邮件消息中链接内容提供离线访问的方法和系统
US20070060123A1 (en) * 2003-06-27 2007-03-15 Oracle International Corporation Roaming Across Different Access Mechanisms and Network Technologies
CN101529415A (zh) * 2006-10-30 2009-09-09 微软公司 基于web的应用程序的离线执行
US20090259744A1 (en) * 2008-04-14 2009-10-15 Kolke Daniel J System and Method for Running a Web-Based Application while Offline
US20100257230A1 (en) * 2009-04-03 2010-10-07 Kroeger Robert J Architectural pattern for persistent web application design

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6035332A (en) * 1997-10-06 2000-03-07 Ncr Corporation Method for monitoring user interactions with web pages from web server using data and command lists for maintaining information visited and issued by participants
US6034621A (en) * 1997-11-18 2000-03-07 Lucent Technologies, Inc. Wireless remote synchronization of data between PC and PDA
US7487455B2 (en) 2004-04-19 2009-02-03 Yahoo! Inc. Techniques for simultaneously displaying a background page and an interactive content page in an application window
US20090094332A1 (en) 2004-09-02 2009-04-09 Zimbra, Inc. System and method for enabling offline use of email through a browser interface
US7831673B1 (en) 2007-10-31 2010-11-09 Google Inc. Methods and systems for processing offline chat messages
US20090132556A1 (en) * 2007-11-16 2009-05-21 Nitin Gupta Offline operations for online applications
CN101470773A (zh) * 2007-12-25 2009-07-01 山东易通商业经纪有限公司 一种基于web浏览器的网页游戏系统实现方法
US9003059B2 (en) 2008-03-31 2015-04-07 Microsoft Technology Licensing, Llc Running applications in an online or offline mode based on the availability of the connection to the remote web server
US20120151368A1 (en) * 2010-12-10 2012-06-14 Mitel Networks Corporation Application operating environment for mobile computing devices

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030217152A1 (en) * 2002-05-15 2003-11-20 Adc Dsl Systems, Inc. Resource sharing with database synchronization
US20070060123A1 (en) * 2003-06-27 2007-03-15 Oracle International Corporation Roaming Across Different Access Mechanisms and Network Technologies
US20050210081A1 (en) * 2004-03-18 2005-09-22 Alcatel Data synchronization method
US20060034621A1 (en) * 2004-08-12 2006-02-16 Finisar Corporation Transimpedance amplifier with integrated filtering and reduced parasitic capacitance
CN1831827A (zh) * 2005-03-11 2006-09-13 国际商业机器公司 对电子邮件消息中链接内容提供离线访问的方法和系统
CN101529415A (zh) * 2006-10-30 2009-09-09 微软公司 基于web的应用程序的离线执行
US20090259744A1 (en) * 2008-04-14 2009-10-15 Kolke Daniel J System and Method for Running a Web-Based Application while Offline
US20100257230A1 (en) * 2009-04-03 2010-10-07 Kroeger Robert J Architectural pattern for persistent web application design

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
BRAD NEUBERG: "《Creating Offline Web Applications With Dojo Offline》", 《HTTP://DOCS.GOOGLE.COM/VIEW?DOCID=DHKHKSK4_8GDP9GR》 *

Also Published As

Publication number Publication date
US9015117B2 (en) 2015-04-21
EP2751718B1 (en) 2019-02-13
CN103765420B (zh) 2017-11-07
DE202012013479U1 (de) 2017-02-06
US8554729B2 (en) 2013-10-08
US20130054550A1 (en) 2013-02-28
EP2751718A1 (en) 2014-07-09
CN107741977B (zh) 2021-08-03
US20140074778A1 (en) 2014-03-13
CN103765420A (zh) 2014-04-30
WO2013032736A1 (en) 2013-03-07

Similar Documents

Publication Publication Date Title
CN103765420B (zh) 用于在应用的后台对动作进行同步的系统和方法
NL2008778C2 (en) Zero-click sharing of application context across devices.
US8019863B2 (en) Synchronizing events between mobile devices and servers
CN103765385B (zh) 跨设备传送应用状态
US8023934B2 (en) Synchronizing communications and data between mobile devices and servers
NL2008779C2 (en) Transferring application state across devices with checkpoints.
CN107122379A (zh) 收集与本地存储的数据文件相关联的事务数据
JP2016533609A (ja) モバイルデバイス上での、クラウドベースのコンテンツマネージメントシステムへのアクセスの提供
CN110168539A (zh) 混合应用中的快速页面加载
CN103369048A (zh) 基于拖拽操作的内容分享方法及系统
CN106663015A (zh) 恢复会话状态
US20160127428A1 (en) Data Collaboration in an Enterprise Environment

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant