更新针对服务的用户界面转让专利

申请号 : CN201580011911.7

文献号 : CN106164868B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : D·科兹沃夫斯基M·I·博里森科U·阿莱夫M·伍德A·M·欣贝格尔E·J·伯恩斯坦S·T·韦尔斯B·F·卡特

申请人 : 微软技术许可有限责任公司

摘要 :

在本文中描述了系统、方法、以及软件以促进对服务的用户界面的增强的更新。在实现中,应用渲染对服务的用户界面,并且响应于事件的发生而显现初始的可视化。在显现了初始的可视化之后,应用从服务中接收包括所提议的可视化的更新,并且确定所提议的可视化是否考虑该事件。如果所提议的可视化考虑该事件,则显现所提议的可视化来代替初始的可视化。但如果所提议的可视化没有考虑事件,则将初始的可视化持续到识别出考虑事件的另一个可视化为止。

权利要求 :

1.一种用于更新用户界面的装置,包括:

一个或多个计算机可读存储介质;以及

存储在所述一个或多个计算机可读存储介质上的程序指令,其中,当由处理系统执行时,所述程序指令引导所述处理系统至少执行以下操作:响应于至少与在针对电子邮件服务的用户界面中的被包括在一个或多个界面元素中的电子邮件对象的用户交互,在所述用户界面中显现针对包括所述电子邮件对象的所述一个或多个界面元素的、由所述用户交互产生的改变以及与所述改变相关联的初始的关联标识符;

向所述电子邮件服务报告对所述改变的指示,以便由所述电子邮件服务纳入到由所述电子邮件服务提供的一个或多个界面更新中;

处理来自所述电子邮件服务的、针对包括所述电子邮件对象的所述一个或多个界面元素的一个或多个界面更新以及与所述一个或多个界面更新相关联的所提议的关联标识符,以通过执行所述所提议的关联标识符与所述初始的关联标识符的比较来确定所述改变是否被纳入到所述一个或多个界面更新中;

至少基于所述改变被纳入到所述一个或多个界面更新中,更新所述用户界面中的所述一个或多个界面元素以纳入所述一个或多个界面更新;并且至少基于所述改变未被纳入到所述一个或多个界面更新中,丢弃所述一个或多个界面更新并将所述改变至少持续到发生来自所述电子邮件服务的另一个界面更新为止。

2.根据权利要求1所述的装置,其中,对所述改变的所述指示包括所述初始的关联标识符。

3.根据权利要求2所述的装置,其中,所述电子邮件服务至少部分地基于相对于与其它用户交互相关联地报告的其它关联标识符而言最近地报告的关联标识符而生成所述所提议的关联标识符。

4.根据权利要求3所述的装置,其中,当所述关联标识符包括所述初始的关联标识符时,所述所提议的关联标识符与所述初始的关联标识符的所述比较指示针对包括所述电子邮件对象的所述一个或多个界面元素的所述一个或多个界面更新考虑所述用户交互;而当所述关联标识符不包括所述初始的关联标识符时,所述比较指示针对包括所述电子邮件对象的所述一个或多个界面元素的所述一个或多个界面更新没有考虑所述用户交互。

5.根据权利要求1所述的装置,还包括:

所述处理系统,其被配置为从所述计算机可读存储介质中读取所述程序指令,并且执行所述程序指令;以及被配置为显示所述用户界面的用户界面系统,其中,所述用户交互包括经由所述用户界面系统所接收的用于改变由所述电子邮件对象所表示的电子邮件的状态的命令。

6.一种用于更新用户界面的方法,所述方法包括:

在应用提供针对其的用户界面的服务中,从所述应用中接收指示在所述用户界面中发生的至少一个用户交互的报告,以及与响应于所述用户交互而在所述用户界面中显现的与初始的可视化相关联的初始的关联标识符;

在所述服务中,识别用于在所述用户界面中显现的所提议的可视化、至少部分地基于关联标识符而生成所提议的关联标识符、并且将所述所提议的关联标识符与所述所提议的可视化相关联;以及在所述服务中,将界面更新传送至所述应用,所述界面更新包括所述所提议的可视化以及所述所提议的关联标识符;

在所述应用中,响应于所述用户交互而显现产生针对所述用户界面的改变的所述初始的可视化;

在所述应用中,将所述报告传送至所述服务并且接收所述界面更新;

在所述应用中,至少部分地基于至少所述初始的关联标识符与所述所提议的关联标识符之间的比较来确定所述改变是否被包括在由所述服务识别的所述所提议的可视化中;

在所述应用中,至少基于所述改变被包括在所述所提议的可视化中,显现所述所提议的可视化来代替所述初始的可视化;以及在所述应用中,至少基于所述改变未被包括在所述所提议的可视化中,在所述用户界面中持续所述初始的可视化。

7.根据权利要求6所述的方法,其中,所述服务包括以下服务中的至少一个服务:电子邮件服务、日历服务、电子商务服务、社交网络服务、办公生产力服务、反病毒服务、以及微博客服务。

说明书 :

更新针对服务的用户界面

技术领域

[0001] 本公开的方面涉及计算硬件和软件技术,并且特定而言涉及更新对服务的用户界面。

背景技术

[0002] 在计算硬件和软件技术的领域中,用户越来也多地常规性地访问并参与多种在线服务。他们的访问是至少部分地通过包括各种对象以及用户可以与其交互的其它界面元素的用户界面来提供的。在简单的示例中,对电子邮件服务的用户界面可以包括各种对象以及代表电子邮件、菜单项、以及其它界面元素的其它元素。
[0003] 可以在合适的计算设备上渲染用户界面,以使得用户可以与该界面的界面元素进行交互以作为对服务的用户体验的一部分。在一些实例中,用户界面可以是由在浏览器应用的上下文内、或者在帮助响应于用户交互而驱动用户界面的一些其它执行环境内运行的客户端应用渲染的。例如,可以在包括电子邮件的列表的用户界面中呈现电子邮件收件箱。用户可以标记电子邮件中的一封电子邮件或者以其它方式对电子邮件中的一封电子邮件进行修改,这接着在用户界面中被可视化。
[0004] 对用户界面的更新可以频繁地进行,并且可以是本地起源的也可以是起源于服务的,所述服务有时可以被称为云端。例如,用户经由设备上的用户界面与服务进行交互可以发起对对象的一个更新,而同一用户或另一个用户经由不同的用户界面与相同的服务进行交互可以发起对同一对象的另一个更新。这样的同时的更新可能导致不一致的用户体验,例如,当可视化对于用户不可知地进行改变时。
[0005] 对这些事件的各种解决方案包括:让服务进行控制以使得总是实现其更新、或者本地地执行将本地更新和源于服务的更新两者考虑在内的合并。允许服务驱动的更新进行控制可能导致用户界面在状态之间闪烁。作为示例,用户可能在共享的电子邮件中键入段落,而当另一个用户改变该电子邮件的主题时,该电子邮件发生闪烁。如果云端版本的电子邮件不包括该段落,则该段落可能从其它版本中暂时消失。数据合并可以避免该情况,但是可能实现起来较复杂,尤其是跨不同平台地实现。
[0006] 另外,至少存在客户端应用处理对用户界面的本地更新的两种方式。一些应用与云端同步数据,而相反其它应用可以向云端报告操作。当对数据进行同步时,客户端应用将反映用户在用户界面中采取的操作的新版本的文件或对象传送至云端。当对操作进行报告时,应用将采取了什么动作报告至云端,但不传送文件或对象。在全部两种情况中,云端可以返回更新,当所述更新由客户端应用在用户界面中实现时,在用户界面中得出与用户的操作不一致的可视化。

发明内容

[0007] 在本文中所提供的是用于至少部分基于服务驱动的更新是否考虑(account for)可以关于用户界面发生的事件来实现对用户界面的更新的系统、方法、和软件。这可以通过改进用户界面中的可视化的一致性来增强用户体验。
[0008] 在至少一个实现中,应用渲染对服务的用户界面,并且响应于事件的发生而显现(surface)初始的可视化。在显现了初始的可视化之后,应用从服务中接收包括所提议的可视化的更新,并且确定所提议的可视化是否考虑该事件。如果所提议的可视化考虑该事件,则显现所提议的可视化来代替初始的可视化。如果所提议的可视化没有考虑该事件,则可以将初始的可视化持续到识别出考虑事件的另一个可视化为止。
[0009] 在一些实现中,服务可以从应用中接收至少指示该事件(例如在用户界面中进行的用户交互)的报告。所述报告还可以包括与在用户界面中显现的初始的可视化相关联的初始的关联标识符。服务识别用于在用户界面中显现的所提议的可视化、至少部分地基于关联标识符来生成所提议的关联标识符、并且将所提议的关联标识符与所提议的可视化相关联。接着,服务将包括所提议的可视化和所提议的关联标识符的对界面的更新传送至应用。
[0010] 提供了该发明内容以用简化的形式介绍在下文的具体实施方式中所进一步描述的概念的选择。应当理解的是,该发明内容不旨在标识所要求保护的主题的关键特征或本质特征,也不旨在用来限制所要求保护的主题的范围。

附图说明

[0011] 通过参考以下附图可以更好地理解本公开的许多方面。尽管许多实现是结合这些附图来描述的,但本公开不限于在本文中所公开的实现。相反,本公开的目的是要覆盖所有的变型、修改、和等价物。
[0012] 图1示出了代表性的服务架构并且示出了实现中的操作场景。
[0013] 图2示出了实现中的更新过程。
[0014] 图3示出了实现中的更新过程。
[0015] 图4示出了实现中的服务架构。
[0016] 图5示出了实现中的更新过程。
[0017] 图6A-6B每个都示出了实现中的操作序列。
[0018] 图7A-7B每个都示出了实现中的操作序列。
[0019] 图8示出了实现中的操作场景。
[0020] 图9示出了各种实现中的计算系统

具体实施方式

[0021] 在本文中所公开的实现包括对针对服务的用户界面的更新方式的增强。在各种实现中,客户端应用渲染对服务的用户界面。可以在用户界面中显现与事件的发生相关联的初始的可视化。根据用于与服务进行通信的基于操作的范例,客户端应用将事件报告至服务,并且将初始的可视化持续到从服务中接收到考虑所报告的事件的所提议的可视化为止。通过该方式,改进了用户界面的一致性,并且避免了诸如在状态间闪烁之类的不一致的行为或者至少将不一致的行为减轻到增强用户体验的程度。
[0022] 应当理解的是,在本文中使用术语初始的是为了将由客户端应用所识别并且在用户界面中所显现的一种类型的可视化或修改与不是由该客户端应用所识别的其它的可视化进行区分。术语初始的不旨在将特定的可视化或修改限于特定的可视化或修改的序列中的第一个。相反,初始的可视化或修改仅仅是在由服务所识别的所提议的可视化或所提议的修改之前的一个可视化或修改。
[0023] 在简单的示例中,客户端应用渲染包括各种界面对象的对服务的用户界面。服务的示例包括但不限于:电子邮件服务、电子商务服务、社交网络服务、办公生产力服务、反病毒服务、游戏服务、以及微博客服务。事件可以发生,响应于该事件的发生,应用显现与该事件相关联的初始的可视化。例如,可以发生关于界面对象的用户交互并且可以执行后台过程,这两者都可以被认为是驱动应用来显现初始的可视化的事件。其它事件是可能的,并且可以被认为在本公开的范围内。
[0024] 应用与服务进行通信以报告所发生的事件,从而允许服务确定用户界面的合适的状态。这样的对事件的报告是根据基于操作的范例的,其中,客户端将操作向上报告至服务,并且作为回应,客户端从服务中接收在用户界面中所渲染的数据。在该示例中,所述数据是由服务所识别的所提议的可视化。
[0025] 当对所提议的可视化进行识别时,除了所报告的事件之外,服务还可以考虑其它事件,例如,在用户界面的其它实例中发生的事件。例如,当移动电子邮件客户端与台式机电子邮件客户端在相同的时间或者时间上接近地被使用时,用户可以与针对服务的多个用户界面进行交互。在另一个示例中,多个用户可以在协同场景中参与服务,例如,当多个用户针对共享的文档进行工作时,或者当多个用户参与在线或多用户游戏时。另一个示例是当多个用户与社交网络服务进行交互时,或者当一个用户经由多个用户界面与社交网络服务进行交互时。
[0026] 客户端应用确定所提议的可视化是否考虑事件(初始的可视化是与该事件相关联地显现的),而不是总是显现所提议的可视化。如果所提议的可视化实际上考虑事件,则应用显现所提议的可视化来代替初始的可视化。然而,如果所提议的可视化没有考虑事件,则客户端应用在用户界面中持续初始的可视化。
[0027] 持续初始的可视化可以通过显现并维持用户基于他们与用户界面交互的情况而预期的可视化,而不是显现可能与用户的期望不一致的由服务所传送的可视化来改进用户界面的一致性。出于多种原因,由服务所提议的可视化可以与用户的期望不一致,所述多种原因包括:更新和所报告的事件在传输中交叉、客户端应用在对事件进行报告时延迟(例如,在受限访问或没有在线访问的时段期间)、或者服务在处理所报告的事件时延迟。其它因素是可能的并且可以被认为在本公开的范围内。
[0028] 在一些场景中,将初始的可视化持续到接收到考虑事件的另一个所提议的可视化为止。然而,在其它场景中,初始的可视化最终由没有考虑事件的所提议的可视化代替或者由另一个本地驱动的可视化代替。
[0029] 可以以多种方式来确定所提议的可视化是否考虑事件。在至少一个实现中,客户端应用和服务采用关联标识符来确定所提议的可视化是否考虑事件。在这样的实现中,客户端应用将初始的关联标识符与初始的可视化相关联,并且当对事件进行报告时将初始的关联标识符传送至服务。其它客户端应用也可以随着事件的发生而传送也包括关联标识符的其它报告。每个关联标识符都与具体的可视化相关联。
[0030] 服务从客户端应用中接收事件报告,并且当每个事件被报告时,服务识别针对该事件的所提议的可视化。另外,由服务生成待与每个所提议的可视化相关联的所提议的关联标识符。所提议的关联标识符是基于与所提议的可视化相对应的事件相关联的那个关联标识符而生成的,或者是以其它方式从与所提议的可视化相对应的事件相关联的那个关联标识符得出的。作为结果,可以由客户端应用对由服务传送至客户端应用的给定更新(其包括所提议的可视化以及相关联的所提议的关联标识符两者)进行检查,以确定由该客户端所报告的事件是否是所提议的可视化的主题,或者该事件是否以其它方式由所提议的可视化所考虑。这可以通过对包括在更新中的所提议的关联标识符和与事件相关联的初始的关联标识符进行比较来确定。因此,当用于生成与所提议的可视化相关联的所提议的关联标识符的关联标识符是与事件相关联的初始的关联标识符时,所述比较将指示所提议的可视化考虑事件。当用于生成所提议的关联标识符的关联标识符不是与该事件相关联的初始的关联标识符时,所述比较将指示所提议的可视化没有考虑事件。
[0031] 在各种实现中,用户界面包括用户可以与其进行交互的界面对象。电子邮件对象是用户可以与其进行交互的界面对象的示例,例如游戏对象、社交网络对象、或者在服务的上下文中用户可以与其进行交互的任何其它类型的对象。事件的示例是经由用户界面的与界面对象的用户交互、或者可能是一些其它触发事件。初始的可视化的示例是对界面对象的初始修改,而所提议的可视化可以是对界面对象的所提议的修改。
[0032] 在一些实现中,在用户界面中所显现的可视化是对对象的修改。例如,可以响应于经由用户界面接收的用于改变由电子邮件对象所表示的电子邮件的状态的命令,而将电子邮件对象从一个状态修改至另一个状态。在另一个示例中,可以将图形、图标、或其它视觉元素从一个状态修改至另一个状态。由此,事件的发生可以触发对电子邮件对象或者对用户界面中的一些其它对象的初始修改。如果对电子邮件对象的所提议的修改考虑事件,则显现该修改。
[0033] 现在参考附图,图1示出了其中客户端应用与服务进行通信以在针对服务的用户界面中实现增强的更新的操作场景。图2示出了客户端应用所采用的更新过程以及服务所采用的另一个更新过程。图4示出了在涉及客户端应用和服务的另一个操作场景中的增强的用户界面更新。图5示出了客户端应用可以采用的更新过程。图6、图7A、以及图7B示出了可以在对用户界面进行更新的上下文中进行的各种操作序列。图8示出了展示了在两个用户界面中的各种状态改变的操作场景。图9示出了适用于实现客户端应用或服务的计算系统。
[0034] 转到图1,操作场景100涉及客户端应用102在其上运行的应用平台101。客户端应用102与在服务平台111上运行的服务112进行通信,以通过用户界面103给用户或多个用户提供对服务112的访问。用户界面103包括用户可以通过用户输入(例如,鼠标点击、触摸、手势、语音命令、或任何其它类型的用户输入)与其进行交互的各种界面元素。用户界面元素包括界面元素105、界面元素107、以及界面元素109。应当理解的是,在操作环境100中可以包括额外的应用平台和额外的客户端应用。
[0035] 应用平台101代表能够运行客户端应用102并实现更新过程200的任何物理的或虚拟的计算系统、设备、或其集合。应用平台101的示例包括但不限于:智能电话、膝上型计算机、平板计算机、台式计算机、混合式计算机、电视机、游戏机、和虚拟机、及其任何变型或组合,它们由在图9中所示出的计算系统900代表。
[0036] 客户端应用102代表能够实现用于增强用户界面103如何被更新的更新过程200的任何软件应用、模块、组件、或其集合。客户端应用102的示例包括但不限于:电子邮件应用、实时通信应用、博客和微博客应用、社交网络应用、电子商务应用、反病毒应用、和游戏应用、以及能够渲染用户界面并采用更新过程200的任何其它类型的应用。客户端应用102可以是在浏览器应用的上下文中执行的基于浏览器的应用。在一些实现中,客户端应用102在网页或网站的上下文中执行或者与网页或网站相关联地执行。然而,客户端应用102还可以是本地安装并执行的应用、流式传输的应用、移动应用、或其任何组合或变型。客户端应用102可以被实现为独立的应用或者可以跨多个应用分布。
[0037] 服务平台111代表能够托管服务112的全部或一部分的任何物理的或虚拟的计算系统、设备、或其集合。服务平台111的示例包括但不限于:服务器计算机、网络服务器、应用服务器、机架式服务器、刀片式服务器、虚拟机服务器、或者塔式服务器、以及任何其它类型的计算系统,它们由在图9中所示出的计算系统900代表。在一些场景中,可以在数据中心、虚拟数据中心、或一些其它合适的计算设施中实现服务112。
[0038] 服务112代表能够与客户端应用102接合并且实现更新过程300以促进对用户界面103的增强的更新的任何服务。服务112的示例包括但不限于:网络服务、个人信息管理服务(包括电子邮件服务和日历服务)、实时通信服务、博客和微博客服务、社交网络服务、电子商务服务、反病毒服务、和游戏服务、以及任何其它类型的服务、组合、或其变型。服务112有时可以被称为云服务、在线服务、或互联网服务、或者以一些其它方式来称呼。应当理解的是,尽管在大多数实现中,将服务112和客户端应用102部署在不同的系统上并且它们相对远离彼此,但在至少一些实现中,可以将服务112与客户端应用102实现在相同的系统或系统的集合上。例如,服务112可以是关于客户端应用102而本地运行的服务,例如是由操作系统所提供的服务、或者在浏览器环境内运行的服务。
[0039] 在操作中,当在应用平台101上执行时,客户端应用102渲染用户界面103,用户可以通过该用户界面103参与服务。用户可以浏览屏幕、菜单、或服务112的其它方面、消耗或组合内容、参加游戏、浏览在线商品、参与通信、或者以一些其它方式来体验服务112。为了促进用户体验,用户界面103包括表示各种图标、图像、菜单、或者用户可以与其进行交互的其它对象的用户界面元素105、107、和109。
[0040] 在操作场景100中示出了一个特定的用户交互131,该用户交互131表示由用户关于界面元素109而进行的操作。例如,用户可以已经触摸、选择、点击、或以其他方式与界面元素109交互(engage with)。响应于这样的事件,客户端应用102在用户界面103中显现与该事件相关联的初始的可视化133。在该示例中,初始的可视化133由关于界面元素109的填充模式的改变来表示。例如,填充模式的改变可以代表界面元素109的状态的改变。在电子邮件场景中,界面元素109可以表示电子邮件或一些其它电子邮件对象,并且状态的改变可以是电子邮件的状态从未读到已读的改变。在社交网络场景中,界面元素109可以表示图像,而状态的改变可以是所接收到的关于图像的“赞”的数量的增加。在电子商务的示例中,界面元素可以表示产品,而状态的改变可以关于产品库存的增加或减少。多种其它场景、界面元素、和状态改变是可能的,并且可以被认为在本公开的范围内。
[0041] 响应于用户交互131的发生,客户端应用102还将用户交互报告至服务112。对操作进行报告是根据操作报告范例而发生的,其中,客户端应用向服务报告操作而不是向服务提供经更新的版本的对象。接着,服务可以确定对对象而言合适的状态是什么,并且用用于在用户界面103中显现的针对客户端应用102的所提议的可视化来进行回复。
[0042] 然而,客户端应用102不总是显现所提议的可视化135。相反,客户端应用102确定所提议的可视化135是否考虑与初始的可视化133相关联的事件,或者,即,所提议的可视化135是否考虑用户交互131。如果当服务112生成所提议的可视化时已经考虑了事件,则所提议的可视化135可以考虑事件。如果对用户交互131的报告在生成所提议的可视化135之前抵达服务112或者以其他方式由服务112进行考虑,则可以是该情况。然而,如果当生成所提议的可视化135时服务112还没有考虑事件,则所提议的可视化135可以没有考虑事件。例如,对用户交互131的报告没有在生成所提议的可视化135之前抵达服务112,或者出于一些其它原因而没有由服务112进行考虑,则可以是该情况。
[0043] 如果所提议的可视化135实际上考虑了用户交互131,则客户端应用102在用户界面103中显现所提议的可视化。所提议的可视化135是由界面元素109的填充模式的改变来表示的。如果所提议的可视化135没有考虑用户交互131,则客户端应用102在用户界面103中持续初始的可视化133。可以在用户界面103中持续初始的可视化133直到接收到考虑用户交互131的另一个所提议的可视化为止,或者持续到识别出并显现另一个初始的可视化为止。在一些场景中,即使所提议的可视化没有考虑初始的可视化,也可以接受并显现所提议的可视化。例如这种情况发生在自从接受了上一个所提议的可视化之后已经过了一定量的时间时。换句话说,如果永远不被所提议的可视化代替,初始的可视化或者一系列的初始的可视化可以变得过时,因此被迫接受所提议的可视化。
[0044] 出于示例性的目的,在操作场景100中,初始的可视化133和所提议的可视化135两者都是关于界面元素109的。然而,应当理解的是,初始的可视化可以关于不是关于其进行用户交互的界面元素的另一个界面元素,或者可以除了关于其进行用户交互的界面元素之外还关于另一个界面元素。例如,尽管用户交互131涉及(implicate)界面元素109,但可以已经显现了关于界面元素105或界面元素107的初始的可视化133。此外,不是用户交互的事件可以触发初始的可视化的显现。例如,在客户端应用102中运行的后台过程可以触发可以作为初始的可视化来显现的对用户界面103的修改。
[0045] 图2示出了在操作场景100的上下文中由客户端应用102所采用的、但可以更加一般性地在其它场景的上下文中实现的更新过程200。在操作中,客户端应用102响应于事件的发生而显现初始的可视化(步骤201)。例如,事件可以是与用户界面中的对象的用户交互、由后台过程所触发的事件、或者响应于其而可以显现可视化的一些其它类型的事件。显现初始的可视化可以包括修改对象的状态以使得对象的外观和其中表示的信息发生改变。其它类型的可视化是可能的,并且可以被认为在本公开的范围内。
[0046] 在显现了初始的可视化之后,客户端应用102接收由服务112所传送的、包括用于在用户界面中显现的所提议的可视化的对用户界面的更新。在一些情况下,客户端应用102可以已经将报告传送至服务112以通知服务112关于事件的发生。然而,并不总是这种情况,这是由于客户端应用102可能已经离线了一段或者以其它方式不能够报告事件。在其它情况下,客户端应用102可以已经报告了事件但事件没有成功被接收、或者出于一些其它原因延迟了由服务112对事件的处理。
[0047] 由此,从服务112中接收到的更新可以考虑或可以没有考虑事件。因此,客户端应用102检查更新以确定所提议的可视化是否考虑事件(步骤203)。如果所提议的可视化考虑事件,则客户端应用102显现所提议的可视化来代替初始的可视化(205)。但如果所提议的更新没有考虑事件,则丢弃所提议的可视化,并且客户端应用102相反可以持续初始的可视化(步骤207)。
[0048] 可以以多种方式来确定更新是否考虑事件。在至少一个实现中,客户端应用102将初始的标识符与响应于事件而在用户界面中显现的初始的可视化相关联。接着,将初始的标识符与发送至服务112的事件的任何报告一起传送,以使得当将与事件相关联的所提议的可视化进行传送时,服务112可以使用初始的标识符来生成所提议的标识符。因此,客户端应用102可以通过将所提议的标识符和与事件相关联的初始的标识符进行比较,而知道所提议的可视化是否是与事件相关联地生成的。
[0049] 在另一个实现中,当将更新传送至客户端应用102时,可以由服务112来提供对与所提议的可视化有关的事件的描述。接着,客户端应用102可以将由服务112所提供的描述和对与初始的可视化相关联的事件的描述进行比较,来确定事件是否是相同的事件。如果是相同的事件,则可以认为所提议的可视化考虑事件。
[0050] 图3示出了在操作场景100的上下文中由服务112所采用的、但更加一般性地可以在其它场景的上下文中实现的更新过程300。在操作中,服务112从客户端应用中接收指示用户交互的报告和关联标识符(步骤301)。可以由客户端应用与响应于用户交互而在用户界面中显现的初始的可视化相关联地生成关联标识符。
[0051] 接着,服务112识别用于响应于用户交互而显现的针对至少一个或多个客户端应用的所提议的可视化(303)。服务112还生成用于与所提议的可视化相关联的关联标识符。该关联标识符可以是基于与对用户交互的报告一起接收的关联标识符而生成的。
[0052] 接着,服务112将包括所提议的可视化及其相关联的标识符的更新传送至一个或多个客户端应用(步骤305)。从接收更新的多个客户端应用中的任何特定的一个客户端应用的角度而言,所提议的可视化可以或可以没有考虑由特定的客户端应用所报告的事件。如在上文中所讨论的,可以基于对所提议的标识符的分析来确定所提议的可视化是否考虑了事件。
[0053] 总而言之,分别在客户端应用和服务上运行的更新过程200和更新过程300可以一同作用以将所提议的可视化与关于客户端应用而在本地发生的事件相关联。将所提议的可视化与事件相关联允许客户端应用将响应于事件而初始地显现的可视化持续,而不是以可能与事件不相关联的所提议的可视化来代替所述可视化。这增强了用户界面的一致性,这是由于通过将初始的可视化持续而避免了或者至少减轻了用户界面中的对象状态间的转变或闪烁。
[0054] 图4示出了实现中的另一个操作场景400。操作场景400涉及客户端设备401、客户端设备411、以及数据中心421。客户端应用402在客户端设备401上运行、客户端应用412在客户端设备411上运行、而服务422托管在数据中心421中。客户端应用402和客户端应用412通过通信网络410与服务422进行通信。
[0055] 客户设备401代表能够执行客户端应用402并通过通信网络410进行通信以允许客户端应用402与服务422进行交互的任何物理的或虚拟的计算设备。客户端设备401的示例包括但不限于:智能电话、平板计算机、膝上型计算机、台式计算机、跨类别混合式计算机、和虚拟机、及其变型或组合。如在图9中所示的,计算系统900代表一个这样的计算设备。
[0056] 客户端应用402代表能够在客户端设备401上运行并通过通信网络410与服务422进行通信的任何软件应用、模块、组件、或其集合。客户端应用402还能够实现在图5中所示出的更新过程500。客户端应用402的示例包括但不限于:电子邮件应用、日历应用、统一通信应用、社交网络应用、电子商务应用、生产力应用、反病毒应用、和游戏应用、以及任何其它类型的应用。客户端应用402可以被集成在另一个应用中或者可以在由另一个应用(例如,浏览器应用)所提供的执行环境内运行。然而,在一些场景中,客户端应用402还可以是本地安装并执行的独立的应用。
[0057] 客户端设备411代表能够执行客户端应用412并且能够通过通信网络410进行通信以允许客户端应用412与服务422进行交互的物理的或虚拟的计算设备。客户端设备411的示例包括但不限于:智能电话、平板计算机、膝上型计算机、台式计算机、跨类别混合式计算机、和虚拟机、及其变型或组合。如在图9中所示出的计算系统900代表一个这样的计算设备。
[0058] 客户端应用412代表能够在客户端设备411上运行并通过通信网络410与服务422进行通信的任何软件应用、模块、组件、或其集合。客户端应用412还能够实现在图5中所示出的更新过程500。客户端应用412的示例包括但不限于:电子邮件应用、日历应用、统一通信应用、社交网络应用、电子商务应用、生产力应用、反病毒应用、和游戏应用、以及任何其它类型的应用。客户端应用412可以被集成在另一个应用中或者可以在由另一个应用(例如,浏览器应用)所提供的执行环境内运行。然而,在一些场景中,客户端应用412还可以是本地安装并执行的独立的应用。
[0059] 数据中心421代表能够托管服务422的计算设备的任何集合。数据中心421可以代表物理数据中心、虚拟数据中心、单个数据中心、多个数据中心、或其任何组合或变型。服务422代表在软件中实现并且可以在数据中心421中托管的任何服务。服务422的示例包括但不限于:电子邮件服务、日历服务、统一通信服务、社交网络服务、电子商务服务、生产力服务、反病毒服务、和游戏服务、以及任何其它合适的服务。
[0060] 在操作场景400中,客户端应用402和412两者都根据操作报告范例而与服务422进行交互。即,当在由客户端应用402和412所渲染的用户界面中发生用户交互时,客户端应用402和412将用户交互报告至服务422,而不传送用户交互所涉及的新的版本的对象。根据这样的范例,服务422对报告进行处理,以确定可以如何修改对象来反映用户交互。服务422将用户交互更新传送至客户端应用402和412,利用所述更新,应用可以刷新其用户界面。然而,客户端应用402和412不是总接受并显现由服务422所提供的对象修改或修正,这是因为一些更新可能与针对每个应用的本地体验不一致。相反,客户端应用402和412两者都采用更新过程500来增强关于由服务422所提供的用户界面更新的用户体验的一致性。
[0061] 参考图5,客户端应用(例如,客户端应用402或客户端应用412)响应于用户交互而显现对用户界面中的对象的初始修改(步骤510)。用户交互可以直接地或间接地涉及对象。初始修改是由客户端应用在不咨询服务422的情况下在本地确定的响应。客户端应用生成用于与初始修改相关联的初始的关联标识符,并且将用户交互与初始的关联标识符相关联地报告至服务422(步骤503)。
[0062] 通常而言,服务422从各种客户端应用中接收报告,所述报告对关于多个用户界面而发生的各种用户交互进行报告。如在上文中所提及的,当接收到所述报告时,服务422对其进行处理以确定如何最佳地渲染用户界面来反映用户交互。接着,服务422将更新传送至客户端应用,客户端应用利用该更新来更新其相应的用户界面。
[0063] 从而,客户端应用可以从服务422中接收更新(步骤505),所述更新包括对其用户界面的所提议的修改,以及与所提议的修改相关联地发送的所提议的关联标识符。然而,有可能所提议的修改不是响应于由该具体的客户端应用所报告的任何用户交互而由服务422所生成的。相反,可以已经响应于由一些其他客户端所报告的一些其他用户交互而识别出所提议的修改。
[0064] 为了避免或减轻客户端应用显现与本地用户体验不一致的所提议的修改的情况,客户端应用将在更新中所接收到的所提议的关联标识符和与在用户界面中目前或者最近显现的初始的可视化相关联的初始的关联标识符进行比较(步骤507)。接着,客户端应用确定所提议的修改是否考虑已经报告了的用户交互(步骤509),所述用户交互可以是与目前显现的初始修改相关联的相同的用户交互。至少部分地基于初始的关联标识符与所提议的关联标识符的比较来进行这样的确定。如果所提议的修改是响应于与该初始的修改相关联的用户交互而进行的,则所提议的关联标识符将关于该初始的关联标识符比较从优。如果所提议的修改是响应于一些其他用户交互而进行的,则所提议的修改将关于所述初始的关联标识符比较不从优。
[0065] 如果所提议的修改考虑用户交互,则客户端应用显现所提议的修改(步骤511)。如果所提议的修改没有考虑用户交互,则持续初始的修改(步骤513)。
[0066] 图6A示出了操作序列601,所述操作序列601代表在其中采用增强的更新的实现中可以出现的消息流。在图6A、6B、7A、和7B、以及相关联的讨论中,各种消息是在服务422与客户端应用402和客户端应用412之间传送的。尽管消息中的一些消息是在客户端应用402或客户端应用412中的仅一个与服务422之间传送的,但应当理解的是,相同的消息可以被传送至客户端应用402和客户端应用412两者。例如,在修改是由服务422传送至客户端应用402的情况下,相同的修改也可以被传送至客户端应用412,反之亦然。
[0067] 参考图6A,在操作序列601中,操作是在由客户端应用412所渲染的用户界面中发生的。例如,操作可以是与用户界面中的对象的用户交互。客户端应用412响应于操作而修改对象。另外,客户端应用412将操作和与该操作相关联的标识符“x”一起报告至服务422。
[0068] 服务422从客户端应用412接收操作,并且识别用于对操作所涉及的对象进行的修改。服务422还生成标识符“dx”,该标识符dx是根据与操作一起从客户端应用412所接收的初始的标识符而得出的。将修改和标识符dx传送至客户端应用402以便于客户端应用402在其自己的用户界面中对相同的对象进行相同的修改。
[0069] 然而,在操作序列601中,已经在由客户端应用402所渲染的用户界面中发生了操作和对应的修改。另外,在客户端应用402接收到修改和相关联的标识符dx之前,已经由客户端应用402报告了该操作和修改对(其中该修改与标识符“y”相关联)。客户端应用402处理来自服务422的更新以确定是否显现与标识符dx相关联的修改。然而,标识符y与标识符dx的比较通知客户端应用402由服务422所提供的修改没有考虑在本地发生的关于客户端应用402的并且被给予标识符y的操作。
[0070] 继续序列,由客户端应用402接收与标识符y相关联地由服务422来报告的操作。服务422响应于所报告的操作而识别修改,并且生成标识符“dxdy”,该标识符是从标识符y得出的,但考虑到当生成修改时也考虑到了由客户端应用412所报告的初始的操作,因此该标识符也是从标识符x得出的。将修改和相关联的标识符dxdy传送至客户端应用402。
[0071] 客户端应用402再一次接收修改和相关联的标识符dxdy,并且将标识符dxdy与标识符y进行比较以确定是否显现该修改。在该情况下,该比较得出对修改实际上考虑与标识符y相关联的操作的确定,并且从而客户端应用402显现该修改。
[0072] 在显现了修改之后,关于客户端应用而在本地发生另一个操作。客户端应用412将该操作与另一个标识符“z”相关联地报告至服务422。服务422生成更新,所述更新包括新的修改以及表示考虑最近由客户端应用402和客户端应用412所报告的全部三个操作标识符“dxdydz”。将修改和标识符dxdydz传送至客户端应用402,该客户端应用402显现该修改,这是因为该修改考虑之前所报告的与标识符y相关联的操作。
[0073] 图6B示出了另一个操作序列603,所述操作序列603代表在在其中采用增强的更新的实现中可以出现的消息流。特别地,操作序列603展示了这样增强的更新可以改进用户体验,所述改进是通过当由服务提供的所提议的更新没有考虑到可以在由客户端将上一次本地更新报告至服务之后已经发生的随后的本地更新时,抑制该所提议的更新来实现的。
[0074] 例如,即使服务可以提供具有考虑由客户端对用户界面进行的初始修改的所提议的修改的更新,但同时可以已经由相同的客户端进行了所提议的修改所没有考虑到的另一个初始的修改。因此,即使由与实现第一初始修改的相同的客户端显现第二初始的修改,也可以抑制所提议的修改,正如该所提议的修改没有考虑到第一初始的修改。例如当客户端先于服务很多而进行操作并且服务还没有赶上客户端的状态时,可以出现这样的情况。
[0075] 在操作序列603中,在由客户端应用402所渲染的用户界面中发生操作。例如,操作可以是与用户界面中的对象的用户交互。客户端应用402响应于操作而修改对象。另外,客户端应用402将操作和与操作相关联的标识符“x”一起报告至服务422。
[0076] 服务422从客户端应用402中接收操作,并且识别用于对操作所涉及的对象进行的修改。服务422还生成标识符“dx”,其是根据与操作一起从客户端应用402所接收的初始的标识符而得出的。将修改和标识符dx传送至客户端应用402以便于客户端应用402更新其用户界面。应当理解的是,由服务422所提议的更新可以与已经由客户端应用402所显现的修改不同,这是因为服务422能够考虑在用户界面的其它实例中发生的其它操作,所述其它操作可以影响将如何显示对服务422的用户界面的给定对象或其它方面。
[0077] 然而,在操作序列603中,已经在由客户端应用402所渲染的用户界面中发生了另一个操作和另一个对应的修改。另外,在客户端应用402接收到修改和相关联的标识符dx之前,由客户端应用402报告了该操作和该修改对(其中该修改与标识符“y”相关联)。客户端应用402处理来自服务422的更新以确定是否显现与标识符dx相关联的修改。然而,标识符y与标识符dx的比较通知客户端应用402:由服务422所提供的修改没有考虑在本地发生的关于客户端应用402的并且被给予标识符y的操作。
[0078] 继续序列,由服务422接收由客户端应用402而与标识符y相关联地报告的操作。服务422响应于所报告的操作而识别修改,并且生成标识符“dxdy”,该标识符“dxdy”是从标识符y得出的,但考虑到当生成修改时也考虑到了由客户端应用412所报告的初始的操作,因此该标识符也是从标识符x得出的。将修改和相关联的标识符dxdy传送至客户端应用402。
[0079] 客户端应用402再一次接收修改和相关联的标识符dxdy,并且将标识符dxdy与标识符y进行比较以确定是否显现该修改。在该情况下,该比较得出对修改实际上考虑与标识符y相关联的操作的确定,并且从而客户端应用402显现修改。
[0080] 图8示出了操作场景800,该操作场景800展示了关于针对服务的两个不同的用户界面的增强的更新的实现。在操作中,客户端应用402渲染由用户界面803所表示的针对服务422的用户界面。在该示例中,用户界面803代表针对社交网络服务的用户界面,并且包括照片805和允许用户指示他们对照片805点赞的界面元素807。在该操作场景中,服务422代表社交网络服务。操作场景800还涉及由客户端应用412所提供的针对服务422的用户界面813。用户界面813包括由照片815所表示的一版的相同的照片,以及允许用户对照片815点赞的界面元素817。
[0081] 在操作场景800中示出了用户界面803和用户界面813的各种状态以展示如在本文中所描述的增强的更新可以如何有益于用户体验。在操作中,关于用户界面803而发生用户交互821。在该示例中,用户交互821是触摸、点击、手势、或者关于界面元素807进行以指示用户对照片805点赞的一些其它输入。
[0082] 除了在用户界面803中发生的用户交互821之外,关于由客户端应用412所渲染的用户界面813还发生类似的用户交互822。用户交互822是触摸、点击、手势、或者关于界面元素817进行以指示用户(可能和与用户界面803进行交互的用户相同或不同)对照片815点赞的一些其它输入。
[0083] 应当理解的是,照片815和照片805仅仅是由服务422所托管的相同的基础照片的本地版本。因此,两个用户交互可以使得被表示为对照片点赞的人数增加二。然而,如果采用经典的界面,则可能关于用户中的至少一个用户而产生不一致的用户体验。例如,用户交互821以及用户交互822将被报告至服务422。在一个场景中,服务422会将赞的数量从“100”增加至“102”,并且会提供针对用户界面803和813两者的更新,该更新具有对界面元素807和817的修改以显现数字“102”来代替数字“100。这样的结果会提供不一致的用户体验,这是因为用户中的至少一个会期望他们的用户交互将计数增加至“101”。
[0084] 为了避免或减轻这样不一致的用户体验,可以采用增强的更新。从而,客户端应用412在由客户端应用402报告任何用户交互821之前,将用户交互822报告至服务422。客户端应用412将标识符“x”与更新相关联。同时,客户端应用402已经对界面元素807进行了初始修改,以将与照片805相关联的计数从“100”增加至“101”。客户端应用412也已经根据其用户将会期望看到的而对界面元素817进行了初始修改,以将赞的数量从“100”增加至“101”。
[0085] 最终由服务422成功地接收到由客户端应用402和客户端应用412两者所传送的更新。一个更新反映用户交互821和相关联的标识符“y”,而另一个更新反映用户交互822和相关联的标识符x。在该场景中,出于示例性的目的而假设对用户交互821的处理相对于对用户交互822的处理而延迟。
[0086] 响应于用户交互822,服务422响应性地生成指示经识别的所提议的修改的更新,并且将该更新与标识符“dy”一起传送至客户端应用402。客户端应用402接收该更新,并且基于标识符dy与标识符x之间的比较来确定是否显现所提议的修改,所述标识符x是与其本地驱动的对界面元素807的修改相关联的标识符。客户端应用402基于所述比较而确定修改没有考虑用户交互821,该用户交互821具有没有反映标识符dy或者以其它方式包含在标识符dy中的标识符x。从而,将初始修改保留在用户界面803中,并且丢弃所提议的修改。与照片805相关联的“赞”的数量维持在“101”,这是与用户界面803进行交互的用户所期望看到的。
[0087] 最终由服务422来处理用户交互821,并且识别所提议的修改。另外,与所提议的修改相关联地生成标识符“dxdy”,所述标识符dxdy反映当得出所提议的修改时,考虑到了用户交互821和用户交互822两者。将包括所提议的修改和标识符dxdy的新的更新传送至客户端应用402和客户端应用412两者。由客户端应用402和客户端应用412两者接受反映针对照片的“赞”的数量增加至102的所提议的更新,这是因为其相关联的标识符dxdy反映在对修改进行识别的过程中,对用户交互821和用户交互822两者进行考虑。因此,所提议的修改由客户端应用402在用户界面803中显现,以及由客户端应用412在用户界面813中显现。在已经被移动至“101”之后,与照片805相关联的赞的数量也被表示为“102”,这与用户的期望一致。
[0088] 图9示出了计算系统900的两个实现,其可以作为如关于在图1和图4中所示出的应用平台、服务平台、客户端设备、和数据中心所讨论的客户端应用和服务中的任意一个或两者而合适地被采用。在实现921中,计算系统900被配置有客户端应用910,并且代表应用平台101、客户端设备401、以及客户端设备411。客户端应用910代表客户端应用102、客户端应用402、客户端应用412。在实现922中,计算系统900被配置有服务911,并且代表服务平台111以及适用于数据中心421的任何计算系统。服务911代表服务112和服务422。
[0089] 计算系统900的示例包括但不限于:台式计算机、膝上型计算机、平板计算机、笔记本计算机、移动计算设备、智能电话、蜂窝电话、媒体设备、电视机、和游戏设备、以及能够实现客户端应用910的任何其它类型的物理或虚拟计算机器。计算系统900的示例还包括:服务器计算机、机架式服务器、网络服务器、云计算平台、和数据中心设备、以及任何其他类型的物理或虚拟服务器机器、及其任何变型或组合。在一些实现中,可以采用多个计算系统的集合来实现服务911的全部或部分,所述服务911可以托管在一个或多个数据中心、虚拟数据中心、或任何其它合适的计算设施中。
[0090] 计算系统900还可以被实现为单个装置、系统、或设备,或者可以以分布式方式被实现为多个装置、系统、或设备。计算系统900包括但不限于:处理系统901、存储系统903、软件905、通信接口系统907、以及用户接口系统909。处理系统901可操作地与存储系统903、通信接口系统907、以及用户接口系统909相耦合。在一些实现中,用户接口系统909是可选的。处理系统903装载并执行来自存储系统903的软件905。
[0091] 在实现921中,当由处理系统901执行时,软件905引导处理系统901如在本文中针对任何客户端应用所描述的那样操作。在实现922中,当由处理系统901执行时,软件905引导处理系统901如在本文中针对任何服务所描述的那样操作。计算系统900可以可选地包括出于简洁的目的而没有被讨论的额外的设备、特征、或功能。
[0092] 仍然参考图9,处理系统901可以包括取回并执行来自存储系统903的软件905的微处理器以及其它电路。处理系统901可以被实现在单个处理设备内,但也可以跨多个处理设备或子系统而分布。处理系统901的示例包括通用中央处理单元、专用处理器、和逻辑设备、以及任何其他类型的处理设备、其组合或变型。
[0093] 存储系统903可以包括可以由处理系统901读取并且能够存储软件905的任何计算机可读存储介质。存储系统903可以包括以用于存储信息(例如,计算机可读指令、数据结构、程序模块、或其它数据)的任何方法或技术实现的易失性的和非易失性的、可移动的和不可移动的介质。存储介质的示例包括随机存取存储器、只读存储器、磁盘、光盘、闪速存储器、虚拟存储器和非虚拟存储器、盒式磁带、磁带、磁盘存储或其它磁存储设备、或者任何其它合适的存储介质。在任何情况下,计算机可读存储介质都不是传播信号。
[0094] 除了计算机可读存储介质之外,在一些实现中,存储系统903还可以包括通过其软件905可以在内部或向外部进行通信的计算机可读通信介质。存储系统903可以被实现为单个存储设备,但可以跨位于同一位置或彼此相对地分布的多个存储设备或子系统来实现。存储系统903可以包括额外的元件,例如能够与处理系统901或可能的其它系统进行通信的控制器。
[0095] 可以以程序指令以及其他方式来实现软件905,并且当所述软件905由处理系统901执行时,引导处理系统901如在本文中关于在本文中所公开的各种操作场景那样操作。
特别地,程序指令可以包括进行协作或以其它方式进行交互以实行在本文中所描述的各种处理和操作场景的各种组件或模块。可以以经编译或经解译的指令或者以指令的一些其它变型或组合来实施各种组件或模块。可以以同步或非同步的方式、顺序地或并行地、在单线程的环境中或在多线程的环境中、或者根据任何其它合适的执行范例、其变型或组合来执行各种组件或模块。软件905可以包括额外的过程、程序、或组件,例如操作系统软件或其它应用软件。软件905也可以包括固件或者可以由处理系统901执行的一些其他形式的机器可读处理指令。
[0096] 通常而言,当被装载到处理系统901中并被执行时,软件905可以将合适的装置、系统、或设备(其由计算系统900所代表)全部从通用计算系统转换成专用计算系统,所述专用计算系统被定制以如在本文中针对每个实现所描述的促进增强的用户界面更新。事实上,将软件905编码在存储系统903上可以转换存储系统903的物理结构。物理结构的具体的转换可以取决于该说明书的不同的实现中的各种因素。这样的因素的示例包括但不限于:用于实现存储系统903的存储介质的技术和计算机存储介质被表征为主要存储还是次要存储,以及其它因素。
[0097] 例如,如果计算机可读存储介质被实现为基于半导体的存储器,则当程序指令被编码在其中时,软件905可以转换半导体存储器的物理状态,例如,通过转换晶体管、电容器、或者构成半导体存储器的其它分立的电路元件的状态。可以关于磁或光介质而发生类似的转换。在不脱离本说明的范围的情况下,物理介质的其它转换是可能的,其中,仅仅为了促进本讨论而提供了前述的示例。
[0098] 再一次作为示例而参考图1,通过计算系统900所代表的计算系统或系统的操作,可以关于针对服务112的用户界面103而执行转换。作为示例,初始的可视化是在用户界面103中渲染的。响应于更新,用所提议的可视化替代初始的可视化,从而将用户界面103的状态从第一状态改变至第二、经转换的状态。转换的其它示例是可能的并且可以被认为在本公开的范围内。
[0099] 应当理解的是,计算系统900通常旨在表示其上可以部署并执行软件905以便实现增强的用户界面更新的计算系统或多个计算系统。然而,计算系统900还可以适合作为可以在其上执行软件905并且可以从中分配、传输、下载、或以其它方式将软件905提供至另一个计算系统以用于部署和执行、或额外分配的任意计算系统。
[0100] 通信接口系统907可以包括支持通过通信网络或网络的集合(未示出)与其它计算系统(未示出)进行通信的通信连接和通信设备。共同支持系统间通信的连接的示例可以包括:网络接口卡、天线、功率放大器、RF电路、收发机、以及其它通信电路。连接和设备可以通过通信介质来进行通信以与其它计算系统或系统的网络交换通信,所述通信介质例如金属、玻璃、空气、或任何合适的通信介质。前述的介质、连接、和设备是公知的并且不需要在这里详细讨论。
[0101] 计算系统900和任何其它计算系统(未示出)之间的通信可以通过通信网络或多个网络并且根据各种通信协议、协议的组合、或其变型来进行。通过其计算系统900可以与其它计算系统交换信息的通信网络的示例包括:内联网、互联网、局域网、广域网、无线网络、有线网络、虚拟网络、软件定义的网络、数据中心总线、计算背板、网络、或其任何组合或变型。前述的通信网络和协议是公知的并且不需要在这里详细讨论。然而,可以使用的一些通信协议包括但不限于:互联网协议(IP、IPv4、IPv6等)、传输控制协议(TCP)、和用户数据报协议(UDP)、以及任何其它合适的通信协议、其变型或组合。在交换信息的前述的示例中的任何一个中,可以根据多种协议中的任何一种协议来进行信息的交换,所述多种协议包括FTP(文件传输协议)、HTTP(超文本传输协议)、REST(表述性状态传输)、WebSocket、DOM(文档对象模型)、HTML(超文本标记语言)、CSS(层叠样式表)、HTML5、XML(可扩展标记语言)、JavaScript、JSON(JavaScript Object Notation)、和AJAX(非对称JavaScript和XML)、以及任何其它合适的协议、变型、或其组合。
[0102] 用户接口系统909可以包括:键盘、鼠标、语音输入设备、用于从用户接收触摸手势的触摸输入设备、用于检测用户的非触摸手势和其它运动的运动输入设备、以及能够从用户接收用户输入的其它可比的输入设备。在用户接口系统909中还可以包括诸如显示器、扬声器、触觉设备、和其它类型输出设备之类的输出设备。前述的用户输入设备和输出设备是在本领域中公知的并且不需要在这里详细讨论。
[0103] 用户接口系统909还可以包括可以由处理系统901执行的、支持在上文中所讨论的各种用户输入和输出设备的相关联的用户接口软件。独立地或彼此并且与硬件元件和软件元件相结合地,用户接口软件和用户接口设备可以支持图形用户界面、自然用户界面、或任何其它类型的用户界面。例如,可以通过用户接口系统909来呈现用户界面103、用户界面803、或者用户界面813。另外,可以经由用户界面系统909来输入关于用户界面所进行的用户输入。
[0104] 在附图中所提供的功能块图、操作场景和序列、以及流程图代表用于执行本公开的新颖的方面的示例性系统、环境、和方法。尽管出于简化说明的目的,在本文中所包括的方法可以是以功能图、操作场景或序列、或流程图的形式的,并且可以被描述为一系列操作,但应当理解和领会的是,所述方法不受操作的顺序的限制,这是因为与此对应,一些操作可以是以与在本文中所示出和描述的其它操作不同的顺序和/或同时进行的。例如,本领域技术人员将理解并领会的是,可以可替代地将方法表示为一系列的相关的状态或事件,例如在状态图中。此外,不是在方法中所示出的所有的操作都针对新颖的实现而被需要。
[0105] 所包括的描述和图描绘了具体的实现以教导本领域技术人员如何制作和使用最佳选项。出于教导发明性原理的目的,已经简化或省略了一些传统的方面。本领域技术人员将从落在本发明的范围内的这些实现中理解变型。本领域技术人员还将理解的是,可以以各种方法对在上文中所描述的特征进行组合以形成多个实现。作为结果,本发明不限于在上文中所描述的具体的实现,而是仅由权利要求及其等价物来限制。