呈现数据驱动表单的制作方法

文档序号:6532883阅读:225来源:国知局
呈现数据驱动表单的制作方法
【专利摘要】本发明描述用于呈现数据驱动表单的概念和技术。根据在此公开的概念和技术,用户设备获得引用或呈现数据驱动表单的资源并获得由该资源显示或使用的数据。用户设备将数据存储在可由用户设备访问的高速缓存中。用户设备可呈递多个包括来自高速缓存的数据的视图。用户设备可显示视图之一并可从显示中隐藏其他视图。如果用户设备检测到用于查看其他视图的输入,则用户设备可呈现先前隐藏的视图之一。用户设备还可管理高速缓存并在高速缓存是空的或不是满的情况下下载附加的数据。
【专利说明】呈现数据驱动表单
[0001] 置量
[0002] -些应用和网站包括用于在数据驱动表单、窗口或视图("数据驱动表单")内显 示或呈现的功能。例如,当数据容易遭受改变时,在数据驱动表单内呈现数据可以是有用 的。用于数据驱动表单的数据可从数据库或可被定期更新的其他数据存储设备获得并被加 载到数据驱动表单中以供呈现给用户。
[0003] 当编写依赖于或包括用于数据驱动表单的功能的网站时,作者可书写以特定设备 或设备类为目标的代码。随着移动计算设备的增长以及使用这些移动计算设备对越来越多 样化类型的数据的访问,容纳各种各样设备的重要性已经变成网站和数据驱动表单的作者 的考量。类似地,当准备网站或应用以供在台式或膝上型计算系统上使用或查看时,移动计 算设备有时向网站作者提出可能考虑到或可能没有考虑到的挑战。例如,台式和/或膝上 型计算系统可接入专用的常开(always-on)网络连接,从而本质地保证可靠的网络连接。 另一方面,一些移动计算设备可能依赖于具有高等待时间、不可靠的连接性和/或相比于 它们的台式或膝上型等慢的带宽和/或通信速度的网络连接。
[0004] 由于这些和其他挑战,作者有时发布单机应用以与可能以其他方式适合于呈现在 数据驱动表单或视图内的数据进行交互。这些应用可在移动设备上本机地执行并因此可针 对特定设备来优化以提供引人入胜的用户体验。然而,这些应用可能需要设备下载全部所 依赖的数据来运行。此外,一些作者可能对向网站的或其他平台上的其他资源的用户提供 一致的用户体验感兴趣。将单机应用外观和/或功能匹配到数据驱动表单提供的外观和/ 或功能可能是困难的。
[0005] 本文所做出的本公开正是关于这些和其他考虑事项而提出的。
[0006] 概沭
[0007] 本文描述用于呈现数据驱动表单的概念和技术。根据在此公开的概念和技术,数 据驱动表单由诸如用户设备的计算系统来显示。在一些实施例中,数据驱动表单在不需要 安装或执行本机应用和/或不需要用于每个所请求的数据驱动表单的网络通信的情况下 来被显示。尤其,用户设备可获得资源(诸如引用或呈现一个或多个数据驱动表单的应用 或网页)并获得由资源显示或使用的数据。数据可被用户设备存储在可由用户设备访问的 高速缓存中。
[0008] 根据各个实施例,由用户设备呈递多个视图。视图中的每个可包括来自高速缓存 的数据。在此使用的"视图"可包括用于呈现数据驱动表单的用户界面或屏幕显示,诸如网 站、应用屏幕、窗口、表单等。根据一些实施例,用户设备可呈递一个数据驱动表单并将一个 包括该数据驱动表单的视图显示为当前视图。用户设备还可呈递一个或多个其他数据驱动 表单,生成包括数据驱动表单的视图并从显示中隐藏其他视图。用户设备可监视在用户设 备处的活动并可检测与对查看另一数据驱动表单或其视图的请求或命令相对应的输入。
[0009] 如果用户设备检测到与对查看另一数据驱动表单或视图的请求或命令相对应的 输入,则用户设备可修改显示。例如,用户设备可隐藏当前被查看的数据驱动表单并将先前 隐藏的数据驱动表单的视图之一呈现为当前可见视图。在一些实施例中,用户设备确定高 速缓存是否是满的或存储了足以呈递附加的数据驱动表单的数据。如果高速缓存是满的, 则用户设备可等待进一步的输入或采取其他动作。如果高速缓存不是满的,则用户设备可 获得附加的数据并将该数据存储在高速缓存中。根据各个实施例,用于获得附加的数据的 通信可异步地进行。例如,用户设备可在数据不被需要的时候下载该数据并且该数据可改 为被存储到高速缓存。由此,在此公开的概念和技术中的一些实施例提供多个数据驱动表 单的低等待时间的显示,而无需执行本机应用和/或无需完成用于获得用于数据驱动表单 的数据的通信。
[0010] 根据一个方面,用户设备经由网络来与web服务器进行通信。Web服务器可主存资 源和数据。资源可包括或可对应于数据驱动表单,而数据可包括显示在数据驱动表单内的 数据。用户设备可获得资源和数据并可将数据存储在用户设备处的或与用户设备相关联的 高速缓存中。在用户设备处执行的一个或多个应用程序可生成一个或多个用户界面以供显 示数据。根据各个实施例,用户界面可对应于或可包括数据驱动表单以供呈现数据。
[0011] 根据另一方面,用户设备被配置为呈递多个视图。用户设备可显示所呈递的视图 之一并可隐藏其他所呈递的视图。响应于检测到用于查看视图中的另一视图的输入,用户 设备可呈现所隐藏的视图之一并可隐藏先前可见视图。用户设备还可呈递另一视图并可隐 藏其他所呈递的视图,直到接收到输入。用户设备还可在呈递附加的视图之后确定高速缓 存是否满了。如果高速缓存不是满的,则用户设备可与web服务器通信以获得附加的数据。 附加的数据可被存储在高速缓存中并可被用于提供附加的视图。
[0012] 应当理解,上述主题可被实现为计算机控制的装置、计算机进程、计算系统或诸如 计算机可读存储介质等制品。通过阅读下面的详细描述并审阅相关联的附图,这些及各种 其他特征将变得显而易见。
[0013] 提供本概述是为了以简化的形式介绍将在以下【具体实施方式】中进一步描述的选 择的概念。本概述并不旨在标识所要求保护的主题的关键特征或必要特征,也不旨在将本 概述用来限制所要求保护的主题的范围。此外,所要求保护的主题不限于解决在本公开的 任一部分中所提及的任何或所有缺点的实现。

【专利附图】

【附图说明】
[0014] 图1是示出用于本文所公开的各实施例的说明性操作环境的系统图。
[0015] 图2是示出根据说明性实施例的用于呈现数据驱动表单的方法的各方面的流程 图。
[0016] 图3A - 3C是示意性地示出根据说明性的实施例的用于呈递多个视图以供呈现数 据驱动表单的框图。
[0017] 图4A - 4C是示出在此公开的用于呈现数据驱动表单的概念和技术的说明性实现 的用户界面图。
[0018] 图5是示出能够实现本文中所呈现的实施例的各方面的计算系统的说明性计算 机硬件和软件体系架构的计算机体系架构图。
[0019] 图6是示出能够实现本文呈现的各实施例的各方面的分布式计算环境的图示。
[0020] 图7是示出能够实现本文呈现的各实施例的各方面的计算设备体系架构的计算 机体系架构图。

【具体实施方式】
[0021] 下面的详细描述针对用于呈现数据驱动表单的概念和技术。根据在此描述的概念 和技术,诸如用户设备的计算系统可获得引用或呈现数据驱动表单的资源并可获得由该资 源显示或使用的数据。用户设备可将数据存储在可由用户设备访问的高速缓存中。用户设 备可呈递多个包括来自高速缓存的数据的视图。用户设备可显示多个视图之一并可从显示 中隐藏其他视图。如果用户设备检测到用于查看其他视图的输入,则用户设备可呈现先前 隐藏的视图之一并可隐藏先前可见的视图。
[0022] 在一些实施例中,用户设备可在修改显示之后确定高速缓存是否是满的或者存储 了足以呈递附加的视图的数据。如果高速缓存是满的或存储了足够的数据以供附加的呈 递,则用户设备可等待进一步的输入或采取其他动作。如果高速缓存不是满的或没有存储 足够的数据以供附加的视图呈递,则用户设备可获得附加的数据并将数据存储在高速缓存 中。根据各个实施例,用于获得附加的数据的通信可异步地进行。由此,数据可在该数据不 被需要用于呈递时被用户设备下载并可改为存储在高速缓存处。由此,在此公开的概念和 技术中的一些实施例可被用于提供多个数据驱动表单的低等待时间的显示,而无需执行本 机应用和/或无需完成用于获得用于数据驱动表单的数据的通信。
[0023] 尽管在结合计算机系统上的操作系统和应用程序的执行而执行的程序模块的一 般上下文中提出了本文描述的主题,但是本领域技术人员将认识到,其他实现可以结合其 他类型的程序模块来执行。一般而言,程序模块包括执行特定任务或实现特定抽象数据类 型的例程、程序、组件、数据结构和其他类型的结构。此外,本领域技术人员将明白,可以利 用其他计算机系统配置来实施本文描述的主题,这些计算机系统配置包括手持式设备、多 处理器系统、基于微处理器的或可编程消费电子产品、小型计算机、大型计算机等等。
[0024] 在以下详细描述中,参考了构成详细描述的一部分并作为说明示出了各具体实施 方式或示例的附图。现在参考附图(全部若干附图中相同的标号表示相同的元素),将提出 用于呈现数据驱动表单的计算系统、计算机可读存储介质和计算机实现的方法的各方面。
[0025] 现在参考图1,将描述用于本文所提出的各实施例的一个操作环境100的各方面。 图1中示出的操作环境100包括操作在网络104上或与网络104通信的用户设备102。根 据各个实施例,用户设备102的功能由以下提供:诸如台式或膝上型计算机系统的个人计 算机("PC");其他类型的计算系统,包括但不限于,服务器计算机或嵌入式计算机系统; 移动计算设备,诸如手持式计算机、上网本计算机、个人数字助理、移动电话、智能电话;和 /或其他计算系统或设备。出于描述在此公开的概念和技术的目的,用户设备102的功能在 此被描述为由平板计算机或其他移动计算设备来提供。应当理解,本实施例是说明性的,并 且不应被解释为以任何方式进行限制。
[0026] 用户设备102被配置成执行操作系统106以及一个或多个应用程序108。操作系 统106是用于控制用户设备102的操作的计算机程序。应用程序108是被配置成在操作系 统106之上执行以提供如本文所述的用于呈现数据驱动表单的功能的可执行程序。根据各 个实施例,应用程序108包括但不限于,web浏览器、单机应用和/或用于访问资源110的 其他软件、应用和/或模块。资源110可由web服务器112或作为网络104的一部分来操 作的或与网络104通信的其他设备或节点来主存。因为资源110可从附加的和/或替换的 实体来获得,所以应该理解,这个实施例是说明性的,不应被解释成以任何方式构成限制。
[0027] 根据各个实施例,资源110包括但不限于文件、应用、站点、页或包括或依赖于数 据驱动表单的其他资源。如在此使用的,数据驱动表单可包括表单、页、应用、视图或引用数 据和/或向用户呈现数据的其他元素。例如,数据驱动表单可包括公司或个人的联系人页, 其中该联系人页所呈现的联系人信息可从联系人数据库或其他数据存储位置中加载并被 呈现在联系人页中。由此,如果联系人信息在联系人数据库或其他数据存储位置中被改变, 则联系人页可呈现新的数据而无需被分开地修改。由此,数据驱动表单可被用于显示呈现 在页或应用中的经更新的数据。由于数据驱动表单被广泛地理解,在此不再更详细的描述 数据驱动表单和/或视图。
[0028] Web服务器112可主存或访问资源112在例如数据驱动表单或视图内使用的数据 114。尽管数据114被示为存储在web服务器112处,但是可以理解这不是必须的。尤其, 尽管未在图1中示出,操作环境100可包括用于存储数据114和/或其他信息的一个或多 个数据库或其他数据存储设备。由此,web服务器112可与未在图1中示出的其他实体通 信和/或从未在图1中示出的其他实体获得数据114。
[0029] 根据各个实施例,web服务器112主存资源110和/或数据114并将这些和/或其 他数据提供到用户设备102。资源110和/或数据114可响应于对资源110的请求、响应于 对数据114的请求和/或在其他时间被提供到用户设备102。用户设备102可被配置成接 收或以其他方式获得数据114并存储数据114。在一些实施例中,用户设备102将数据114 存储在高速缓存116中。
[0030] 高速缓存116可以是存储器的一部分或是位于用户设备102处的或与用户设备 102通信的其他数据存储元素。根据各个实施例,高速缓存116对应于可在JAVASCRIPT或 其他语言和/或脚本中实现的HTML高速缓存。如将在以下更详细解释的,用户设备102从 web服务器112获得数据114并将数据114存储在高速缓存116中。用户设备102可控制 从web服务器112下载或接收的数据114的量。尤其,用户设备102可下载或接收足以呈 递定义数量的与资源110相关联的数据驱动表单或视图的数据114。
[0031] 在一些实施例中,为其下载数据114的视图的数量可由用户设置、设备设置、应用 设置和/或由与web服务器112相关联的实体来设定。该数量可基于多个考量来变化,该 多个考量诸如例如,与被用于下载资源110的网络连接相关联的可用带宽、预期的查看或 读取速度或时间、预期的呈递速度等。这些和其他考量可基于对在用户设备102处的操作、 用户设备102的过往使用和/或设备或应用设置的分析。在其他实施例中,定义针对要被 高速缓存116的数据114的量的阈值数量,而不管用户设备102的操作。在一些实施例中, 例如,用户设备102在高速缓存116中维护足以呈递三个数据驱动表单和/或视图或数据 驱动表单的屏幕显示("视图")的数据114。该三个视图可包括例如,当前视图和两个其 他视图,诸如先前视图和下一视图、两个先前视图和/或两个下一视图。由于任意数量的数 据驱动表单和/或视图和/或其任意组合可被用作控制数据高速缓存的阈值,应当理解这 些实施例是说明性的,并且不应被解释为以任何方式进行限制。以下参考图3A - 3C示出 并描述示意性地示出如在此描述的数据驱动表单的呈递的图。
[0032] 用户设备102可被配置成执行应用程序108中的一个或多个来呈递与数据驱动表 单和/或数据驱动表单的视图相对应的一个或多个用户界面("Π ") 118。因为UI118可包 括数据114和/或可提供与资源110相关联的数据驱动表单,应当理解,在此提到的Π 118 可以是或可包括数据驱动表单或数据驱动表单的视图。应当理解,这些实施例是说明性的, 而不应被解释为以任何方式构成限制。
[0033] 根据各个实施例,用户设备102访问资源110。资源110可被存储在用户设备102 处或可从web服务器112获得。用户设备102可高速缓存数据114,其可以是被资源110引 用的或与资源110相关联的数据。被用户设备102高速缓存的数据114的量可基于多个考 量来变化。数据114可被存储在与用户设备102相关联的或可由用户设备102访问的高速 缓存116中。
[0034] 用户设备102可呈递一个或多个将数据114包括到数据驱动表单内的Π 118并可 将UI118输出例如到与用户设备102相关联的显示设备(未在图1中示出)。除了呈递对 应于当前视图的数据驱动表单之外,用户设备102还可呈递对应于包括数据114的其他视 图的附加的数据驱动表单。在一构想的实施例中,用户设备102呈递当前视图、先前视图和 下一视图。当前视图可由用户设备102显示并且其他视图可从视图中隐藏。如将在以下参 考图2更详细解释的,用户设备102可监视用户设备102处的活动以确定是否在用户设备 102处检测到用于操纵UI118和/或查看其他数据驱动表单或其视图的输入。
[0035] 如果用户设备102检测到用于操纵Π 118的输入,则用户设备可解释该输入并可 实现该输入。在一些实施例中,用户设备102检测到在单点触摸屏或多点触摸屏处的"轻 拂"触摸姿势并将该姿势解释为对应于查看先前或下一数据驱动表单的命令。响应于检测 到这个输入和命令,用户设备102可隐藏当前的数据驱动表单,将先前隐藏的数据驱动表 单之一呈现为新的当前视图,任选地删除先前隐藏的数据驱动表单之一和/或呈递新的隐 藏的数据驱动表单以供响应于进一步的用户输入来呈现。
[0036] 用户设备102还可监视高速缓存116来确定高速缓存是否是"满的"。如在此使用 的,"满的"高速缓存可指存储了足以在用户设备102再次检测到输入的情况下呈递附加的 数据驱动表单的数据114的高速缓存116。由此,如果用户设备102在任意特定时间处呈递 或维护三个视图或数据驱动表单,则用户设备102可在高速缓存116中维护足以呈递5个 数据驱动表单的数据114。由此,如果用户轻拂或做出其他姿势或输入其他命令来查看先前 或下一数据驱动表单,则可呈递新的数据驱动表单而无需从web服务器112或其他实体下 载附加的数据114。应当理解,本实施例是说明性的,并且不应被解释为以任何方式进行限 制。
[0037] 如果用户设备102确定高速缓存116不是满的,则用户设备102可获得附加的数 据114并将该附加的数据114存储在高速缓存116中。因此,相对于呈递当前被查看的数据 驱动表单和/或先前和下一数据驱动表单,用户设备102可将数据114异步地加载到高速 缓存中。由此,用户设备102的用户可能检测不到数据114的下载并可被提供平滑和/或 高效的用户体验。在此公开的概念和技术的这些和其他方面将在以下尤其参考图2-4B被 更加详细地描述。
[0038] 图1示出一个用户设备102、一个网络104以及一个web服务器112。然而,应该 理解,操作环境1〇〇的一些实现包括多个用户设备102、多个网络104、以及多个web服务器 112。因此,所示实施例应该被理解为说明性的,并且不应该被解释为以任何方式构成限制。
[0039] 现在转到图2,将详细描述用于呈现数据驱动表单的方法200的各方面。应该理 解,不一定按任何特定次序来呈现本文公开的方法200的操作,并且以替代的次序来执行 某些或全部操作是可能的并被考虑。为了易于描述和说明,按所示次序来呈现各操作。可 以添加、省略和/或同时执行操作,而不脱离所附权利要求书的范围。
[0040] 还应当理解,所示方法200可以在任何时候结束并且不必完整地执行。方法200的 某些或全部操作,和/或基本上等价的操作,可以通过执行如本文所定义的计算机存储介 质上所包括的计算机可读指令来执行。如在说明书和权利要求书中使用的术语"计算机可 读指令"及其变型,在本文是用来广泛地包括例程、应用、应用模块、程序模块、程序、组件、 数据结构、算法等等。计算机可读指令可以在各种系统配置上实现,包括单处理器或多处理 器系统、小型计算机、大型计算机、个人计算机、手持式计算设备、基于微处理器的可编程消 费电子广品、其组合等等。
[0041] 因此,应该理解,本文所述的逻辑操作被实现为:(1) 一系列计算机实现的动作或 运行于计算系统上的程序模块;和/或(2)计算系统内的互连的机器逻辑电路或电路模块。 该实现是取决于计算系统的性能及其他要求的选择问题。因此,此处描述的逻辑操作被不 同地称为状态、操作、结构设备、动作或模块。这些操作、结构设备、动作和模块可以用软件、 固件、专用数字逻辑及其任何组合来实现。
[0042] 出于阐明和描述本公开的各概念的目的,方法200被描述为由用户设备102经由 执行一个或多个应用程序108来执行。应该理解,该实施例是说明性的,并且不应被视为以 任何方式构成限制。尤其,其他设备可经由执行应用程序108和/或附加的或替换的软件 组件来提供在此描述的方法200的功能。
[0043] 方法200始于操作202,其中用户设备102访问资源110。在一些实施例中,如在 以上参考图1解释和示出的,资源110被存储在web服务器112处和/或以其他方式与web 服务器112相关联。由此,在一些实施例中,资源112对应于web应用、网站、网页、其他站 点、应用或页面、文件、其他资源等。资源110还可与被用于呈递对应于资源110或与资源 110相关联的数据驱动表单的数据114相关联。例如,资源110可对应于联系人管理页,该 联系人管理页包括用于呈现对应于存储在web服务器112处和/或存储在可由web服务器 112访问的联系人数据库处的联系人数据或联系人信息的数据114的数据驱动表单。类似 地,资源110可对应于具有用于呈现信息的数据驱动表单的网页并且数据114可对应于呈 现在数据驱动表单内的信息。因为资源110和数据114可对应于各种类型的资源和/或数 据,应当理解,这些实施例是说明性的,并且不应被解释为以任何方式构成限制。
[0044] 方法200从操作202继续至操作204,其中用户设备102更新数据114。根据各个 实施例,用户设备102生成对数据114的请求并将该请求传递到web服务器112或与数据 114相关联的其他实体。响应于该请求,用户设备102可接收数据114和/或可被允许访问 数据114。在其他实施例中,用户设备102请求资源110并且响应于该对于资源110的请 求,web服务器112用资源110和/或数据114作出响应。
[0045] 在从web服务器112或其他实体接收数据114后,用户设备102可将数据114存 储在存储器设备中,诸如高速缓存116。根据一些实施例,用户设备102使用HTML高速缓 存来高速缓存数据114。如将在以下更详细解释的,代替于或附加于主存在web服务器112 或其他实体处的数据114,用户设备102可被配置成从存储在高速缓存116中的数据114生 成数据驱动表单的视图或其他数据驱动元素。
[0046] 方法200从操作204行进到操作206,如以上详细解释的,其中用户设备102呈递 一个或多个窗口、表单或对应于或包括一个或多个数据驱动表单的视图。此外,数据驱动表 单可对应于以上参考图1描述的Π 118中的一个或多个。如以上解释的,用户设备102在 各个实施例中被配置成在特定时间处呈递多个数据驱动表单。除了当前被查看或显示的数 据驱动表单之外,用户设备102还可呈递包括在一个或多个先前视图、一个或多个下一视 图和/或其组合中的一个或多个数据驱动表单。
[0047] 根据各个实施例,当前被查看的数据驱动表单被用户设备102呈递并呈现,而其 他数据驱动表单被呈递并从视图中隐藏。隐藏的数据驱动表单可在无需重新加载web浏览 器控件或以其他方式从web服务器112获得对应于隐藏的数据驱动表单的数据114的情况 下被呈递。在呈递隐藏的数据驱动表单后,可对数据驱动表单进行排序以使得能够将数据 驱动表单向右、向左、向上或向下"滑动",如图2A-4C中更清楚地示出的。
[0048] 方法200从操作206行进到操作208,其中用户设备102显示在操作206中呈递的 数据驱动表单之一。根据各个实施例,用户设备102呈现可由资源110和/或由用户输入 或设置定义的当前数据驱动表单。如以上解释的,其他数据驱动表单可从视图中隐藏并且 只有当前数据驱动表单可在操作208中显示。应当理解,本实施例是说明性的,并且不应被 解释为以任何方式进行限制。
[0049] 方法200从操作208行进到操作210,其中用户设备102确定是否在用户设备102 处检测到输入。具体而言,用户设备102可监视用户设备102处的活动并确定是否检测到 用于操纵由用户设备102呈现的视图的任何输入。根据在此公开的概念和技术的各个实施 例,用户设备102可监视活动以检测一个或多个触摸姿势、一个或多个鼠标姿势、一个或多 个多点触摸姿势等。以下参考图7描述了一些说明性的姿势。简而言之,触摸姿势可包括 但不限于"轻拂"姿势,其中用户将手指、指示笔或其他结构放置在与触摸屏接触并将结构 例如向右或向左移动。因为其他姿势可被构想并且是可能的,由此,应该理解,该实施例是 说明性的,并且不应被解释为以任何方式构成限制。
[0050] 如果用户设备102在操作208中确定没有在用户设备102处检测到输入,则方法 200可返回到操作210并且用户设备102可再次确定是否在用户设备102处检测到输入。 由此,方法200的执行可在操作210处暂停,直到用户设备102在操作208的任意迭代中确 定在用户设备102处检测到输入。
[0051] 如果用户设备102在操作210中确定在用户设备102处检测到输入,则方法200可 行进到操作212。在操作212,用户设备102显示另一数据驱动表单。具体而言,如以上参 考图206解释的,用户设备102可在操作206中呈递多个数据驱动表单并可在操作208中 显示该数据驱动表单之一。由此,当接收到在操作210检测到的输入时,附加的所呈递的数 据驱动表单可被先前地呈递和隐藏。由此,代替于抓取用于下一视图或数据驱动表单的数 据114,用户设备102可呈现另一数据驱动表单,诸如例如下一数据驱动表单、先前数据驱 动表单或其他数据驱动表单。
[0052] 在一些实施例中,可基于存储在高速缓存116中的数据114来生成数据驱动表单, 并且由此,用户设备102可消除或减少用户设备102和web服务器112之间用于生成数据 驱动表单的通信。由此,可在数据驱动表单的显示之间避免或消除用户设备102和web服 务器112之间的通信。由此,在此公开的概念和技术的一些实施例使得能够在各个数据驱 动表单的显示期间减少或消除感受到的等待时间和/或延迟。
[0053] 方法200从操作212行进到操作214,其中用户设备102确定高速缓存116是否 是满的。如在此使用的,"满的"高速缓存116指存储了足够或充足的数据来呈递指定数量 的数据驱动表单的高速缓存116,但是并不一定指存储了高速缓存116的容量的数据114 的高速缓存116。更具体的,在一些实施例中,用户设备102被配置成维护存储了足以生成 三个数据驱动表单的数据114的高速缓存,该三个数据驱动表单包括但不限于,当前数据 驱动表单和两个或更多个相邻的数据驱动表单,诸如先前数据驱动表单和下一数据驱动表 单、两个下一数据驱动表单、两个先前数据驱动表单等。应当理解,对应于多于三个的数据 驱动表单的数据114可被高速缓存和/或维护在高速缓存116中。如此,以上示例应当被 理解为说明性的,并且不应被解释为以任何方式进行限制。
[0054] 如果用户设备102在操作214中确定高速缓存116不是如在此定义的满的,则方 法200行进到操作216,其中用户设备102可填充高速缓存116。尤其,用户设备102可向 web服务器112或其他主存数据114的实体请求数据114。根据各个实施例,用户设备102 可相对于如在操作206中显示的呈递视图异步地请求用于填充高速缓存116的数据114。 尤其,用户设备102可在数据114不被需要用于呈递时获得数据114。由此,查看数据114 的用户所体验到的数据114的下载和/或延迟或等待时间可被减少或消除,从而相对于当 请求数据驱动表单时下载数据114提升了用户体验。
[0055] 如果用户设备102在操作214中确定高速缓存是如在此定义的满的,则方法200 从操作216或从操作214行进到操作218。在操作218处,用户设备102呈递一个或多个附 加的数据驱动表单。可以从以上对于操作214-216的描述中理解,在操作218中呈递的数 据驱动表单可对应于由用户设备102使用在操作216中获得的数据114和/或使用在操作 204中存储在高速缓存116中的数据114所呈递的数据驱动表单。
[0056] 在一些实施例中,用户设备102被配置成响应于如以上参考操作210描述的命令 或输入来呈递附加的数据驱动表单。由此,用户设备102可被配置成在任意给定时间处维 护多个数据驱动表单,使得滚动、轻拂或以其他方式在数据驱动表单中导航的用户在所请 求的视图被呈递时和/或在与数据驱动表单相关联的数据114被获得时可能不会经历延 迟。
[0057] 在其他实施例中,数据驱动表单基于时间考量和/或基于要在任意给定时间处被 维护的阈值数量的数据驱动表单来被呈递。由此,例如,用户设备102可在从对数据114的 先前下载经过了特定时间段后获得新的数据114。由此,在此公开的概念和技术可被用于即 使数据114对应于快速改变或演化的数据,也能在数据驱动表单中呈现数据114。由于各种 方案可被用于管理要呈递多少数据驱动表单和何时呈递数据驱动表单,应当理解,这些实 施例是说明性的,并且不应被解释为以任何方式进行限制。
[0058] 方法200从操作218返回到操作210,其中用户设备102再次监视用户设备102处 的活动以用于输入。应当理解,方法200可在任意时间处结束。此外,应当理解,如果需要, 方法200可重复任意次。
[0059] 现在转到图3A - 3C,描述了在此公开的用于呈现数据驱动表单的概念和技术的 附加方面。尤其,图3A - 3C是根据一说明性的实施例示意性地示出呈递的视图集合("视 图集")300的框图。如以上解释的,"视图"和/或其集合(诸如视图集300)可对应于用于 呈现一个或多个所呈递的数据驱动表单或其视图的屏幕显示。由此,视图和/或视图集300 可对应于以上参考图1 一 2描述的一个或多个UI118或UI118集合。图3A中显示的视图 集300包括三个视图302 ( "视图")302A - C(此后一般地和/或统一地称为"视图302")。 由于任意数量的视图302可被包括在视图集300中,所以应该理解,这个实施例是说明性 的,不应被解释成以任何方式构成限制。
[0060] 视图集300还包括两个空的槽304A - B(此后一般地和/或统一地称为"槽304")。 槽304可对应于用于移动、重新排序和/或呈递视图302的概念性的槽,如将在以下更详细 描述的。应当理解,图3A - 3C中显示的槽304被包括用于示出和描述在此公开的概念和 技术的目的并且可从各个实施例中忽略和/或可包括多于两个的槽304。由此,显示在图 3A - 3C中的示出的实施例是说明性的,并且不应该被解释为以任何方式构成限制。
[0061] 现在参考图3A,视图302A可对应于先前视图。如在此使用的,"先前视图"可对 应于呈现来自一记录的数据114的数据驱动表单的视图,该记录相邻于在呈现在当前视图 302B中的数据驱动表单的数据驱动表单中呈现的记录。由此,"先前视图"不需要被先前地 显示。而是说,单词"先前"可被用于指代数据114中先前的或以其他方式相邻的记录和/ 或指代数据114中其他相邻的记录。视图302可对应于所呈递的视图302,其中当前视图 302B对应于当前被显示在显示屏或与用户设备102相关联的其他显示设备上的视图,并且 视图302A、302C对应于从用户设备102的显示屏中隐藏的但响应于检测到在用户设备102 处的输入被显示的视图(如以上参考图2描述的)。可在用户设备102处生成的一些示例 屏幕显示在以下参考图4A - 4C来示出和描述。
[0062] 图3B示出了一示例场景,其中用户在查看如图3A中显示的当前视图302B时滚 动、轻拂或以其他方式输入姿势或其他命令来用于查看下一视图302C。如在图3B中显示 的,用户设备102可响应于检测到在用户设备102处的输入来修改图3A中显示的视图302。 虽然不在图3B中可见,视图302A可被用户设备102例如通过从呈递高速缓存中删除对应 于视图302A的所呈递的图像和/或从高速缓存116中移除对应于视图302A的数据114或 其他动作来丢弃。
[0063] 附加地,用户设备102可呈递新的视图302D,该新的视图302D包括呈现存储在高 速缓存116中的数据114的数据驱动表单。用户设备102还可将视图302B移动到对应于 视图302A的先前位置的位置。由此,视图302B可在图3B中隐藏并且下一视图302C可被 移动到对应于视图302B的先前可见位置的位置。由此,在图3B中,视图302C可对应于当 前视图,而视图302B和302D可对应于隐藏视图。如果需要,代替先前视图302A,可创建的 新的槽304C,但不一定如此。应当理解,本实施例是说明性的,并且不应被解释为以任何方 式进行限制。
[0064] 图3C示出了一示例场景,其中用户在查看如图3A中显示的当前视图302C时滚 动、轻拂或以其他方式输入姿势或其他命令来用于查看下一视图302D。如在图3C中显示 的,用户设备102可响应于检测到在用户设备102处的输入来修改图3B中显示的视图302。 如以上提到的,如果需要,视图302B可被用户设备102丢弃。
[0065] 如图3C中显示的,用户设备102可呈递新的视图302E,该新的视图302E包括呈现 存储在高速缓存116中的数据114的数据驱动表单。用户设备102还可将视图302C移动到 对应于视图302B的先前位置的位置。由此,视图302C可在图3C中隐藏并且视图302D可 被移动到对应于视图302C的先前位置的位置并使得可见。由此,在图3C中,视图302D可 对应于当前视图,而视图302C和302E可对应于隐藏视图。如果需要,代替先前视图302B, 可创建的新的槽304D,但不一定如此。应当理解,本实施例是说明性的,并且不应被解释为 以任何方式进行限制。
[0066] 从以上对于图3A - 3C的描述中可以理解,多个视图302可由用户设备102来管 理并且响应于检测到在用户设备102处的输入来隐藏或显示。类似地,可以理解,如以上解 释的,随着视图302响应于用户输入被滚动或滑动,其他视图302可被删除、丢弃、呈递、隐 藏和/或显示。尽管以上参考图3A - 3C仅描述了三个视图302,但是从以上描述可以理 解,基于性能、屏幕显示大小、处理功率、可用网络带宽、高速缓存116的大小和/或其他考 量,用户设备102可管理任意数量的可见和/或隐藏视图302。
[0067] 现在转向图4A-4C,将根据各说明性实施例来描述示出本文描述的用于呈现数据 驱动表单的概念和技术的各方面的Π 图。尤其,图4A示出了由在用户设备102处执行的 应用程序108中的一个或多个生成的屏幕显示400A。在一些实施例中,屏幕显示400A可对 应于以上参考图1描述的UI118之一,但不一定如此。在示出的实施例中,屏幕显示400A 被显示在平板计算设备402上。应该理解,这是如在此公开的呈现数据驱动表单的一个实 施例,并且不应被解释为以任何方式构成限制。
[0068] 如图4A中显示的,屏幕显示400A包括数据驱动表单404,其可对应于如以上参考 图3A - 3C描述的可见视图302。因此应当理解,虽然不在图4A中可见,可在显示空间的不 可见区域中或在对用户不可见的呈递高速缓存中呈递数据驱动表单404。在示出的实施例 中,数据驱动表单404包括联系人信息406,该联系人信息406对应于来自联系人数据库的 记录或存储为数据114的其他信息。如以上解释的,数据114可被用户设备102获得并被 存储在高速缓存116中。被高速缓存的数据114可被用于生成数据驱动表单404以及其他 隐藏数据驱动表单404和/或视图302。
[0069] 在图4A显示的实施例中,用户将手指408从联系人区域410向平板402的左侧轻 拂或滑动。响应于检测到这个输入,平板402或用户设备102的其他实现可修改屏幕显示 400A以提供如以上解释的下一视图302、先前视图302和/或另一数据驱动表单404。这样 的实施例的一个示例在以下参考图4C来示出。由于平板402和/或用户设备102的其他 实现可检测其他类型的输入来显示其他视图302,应当理解,这个实施例是说明性的,并且 不应被解释为以任何方式进行限制。
[0070] 现在转到图4B,描述了在此公开的用于呈现数据驱动表单的概念和技术的附加方 面。尤其,图4B显示了由平板402或其他用户设备102响应于检测到图4A中示出的输入 或用于显示附加视图302或数据驱动表单404的其他输入来生成的屏幕显示400B。如在图 4B中显示的,在检测到姿势或其他命令之际,另一视图302或下一数据驱动表单404'可被 滚动进入屏幕显示400B。在示出的实施例中,下一数据驱动表单404'结合手指408的移动 来滚动进入屏幕显示400B,但不一定如此。由此,数据驱动表单404和/或下一数据驱动表 单404'的部分可被同时地显示在屏幕显示400B上。在其他实施例中,下一数据驱动表单 404'可在不需要如图4B中示出的滚动或滑动的情况下被显示。由此,图4B所示的实施例 是说明性的,且不应当被解释为以任何方式构成限制。
[0071] 现在转到图4C,描述了在此公开的用于呈现数据驱动表单的概念和技术的附加方 面。尤其,图4C显示了由平板402或其他用户设备102响应于检测到如图4A中示出的输 入或用于显示附加视图302或数据驱动表单404的其他输入来生成的屏幕显示400C。如在 图4C中显示的,下一数据驱动表单404'可响应于如图4A中示出的输入来显示。如以上参 考图4B解释的,屏幕显示400C可由平板402或其他用户设备102在具有或不具有如图4B 中示出的显示中间视图的情况下来显示。在示出的实施例中,下一数据驱动表单404'被显 示在屏幕显示400C上并且对应的联系人信息406'可被显示。
[0072] 如在此详细解释的,平板402或其他用户设备102可在无需获得来自web服务器 112或其他设备的数据114的情况下显示下一数据驱动表单404'。相反,对应于联系人信 息406'的数据114可从高速缓存116中获得。由此,下一数据驱动表单404'的显示可由用 户设备102在不需要进行任何附加的通信的情况下来完成。由此,在此公开的概念和技术 的一些实施例可提供多个数据驱动表单的平滑和快速的显示,而不需要本机应用和/或过 量的网络通信。应当理解,这些实施例是说明性的,而不应被解释为以任何方式构成限制。
[0073] 图5示出能够执行本文所描述的用于呈现数据驱动表单的软件组件的设备的说 明性计算机体系架构500。由此,图5所示的计算机体系架构500示出服务器计算机、移动 电话、PDA、智能电话、台式计算机、上网本计算机、平板计算机、和/或膝上型计算机的体系 架构。计算机体系架构500可用于执行本文所呈现的软件组件的任何方面。
[0074] 图5所示的计算机体系架构500包括中央处理单元502 ( "CPU")、包括随机存取 存储器506 ( "RAM")和只读存储器("ROM")508的系统存储器504、以及将存储器504耦 合至CPU502的系统总线510。基本输入/输出系统被存储在R0M508中,该系统包含帮助 诸如在启动期间计算机体系架构500中的元件之间传递信息的基本例程。计算机体系架构 500还包括用于存储操作系统106、应用程序108、高速缓存116和Π 118的大容量存储设备 512。尽管未在图5中示出,但大容量存储设备512还可被配置成在需要时能将资源110和 数据114存储在高速缓存116中。
[0075] 大容量存储设备512通过连接至总线510的大容量存储控制器(未示出)连接至 CPU502。大容量存储设备512及其相关联的计算机可读介质为计算机体系架构500提供非 易失性存储。虽然对此处包含的计算机可读介质的描述引用了诸如硬盘或CD-ROM驱动器 之类的大容量存储设备,但是本领域的技术人员应该明白,计算机可读介质可以是可由计 算机体系架构500访问的任何可用计算机存储介质或通信介质。
[0076] 通信介质包括诸如载波或其它传输机制等已调制数据信号中的计算机可读指令、 数据结构、程序模块或其它数据,且包含任何传递介质。术语"已调制数据信号"指的是其 一个或多个特征以在信号中编码信息的方式被更改或设定的信号。作为示例而非限制,通 信介质包括诸如有线网络或直接线连接之类的有线介质,以及诸如声学、RF、红外及其他无 线介质之类的无线介质。上述的任意组合也应包括在计算机可读介质的范围之内。
[0077] 作为示例而非限制,计算机存储介质可包括以用于存储诸如计算机可读指令、数 据结构、程序模块或其它数据等信息的任何方法或技术实现的易失性和非易失性、可移动 和不可移动介质。例如,计算机介质包括但不限于,RAM、R0M、EPR0M、EEPR0M、闪存或其他固 态存储器技术工0-如1、数字多功能盘("0¥0")、册-0¥0、蓝光出1^-狀¥)或其他光学存储、 磁带盒、磁带、磁盘存储或其他磁性存储设备、或能用于存储所需信息且可以由计算机体系 结构500访问的任何其他介质。为了权利要求书的目的,短语计算机存储介质摂及其变型 不包括波、信号和/或其他瞬态和/或无形通信介质本身。
[0078] 根据各实施例,计算机体系架构500可以使用通过诸如网络104之类的网络到远 程计算机的逻辑连接来在联网环境中操作。计算机体系架构500可以通过连接至总线510 的网络接口单元514来连接到网络104。应当明白,网络接口单元514还可以被用来连接到 其它类型的网络和远程计算机系统,例如,web服务器112。计算机体系结构500还可包括 用于接收和处理来自多个其他设备的输入的输入/输出控制器516,这些设备包括键盘、鼠 标、或电子指示笔(在图5中未示出)。类似地,输入/输出控制器516可提供到显示屏、打 印机、或者其他类型的输出设备(在图5中也未示出)的输出。
[0079] 应当理解,本文所描述的软件组件在被加载到CPU502中并被执行时可以将 CPU502和总体计算机体系架构500从通用计算系统变换成为方便本文所提出的功能而定 制的专用计算系统。CPU502可以用任意数量的晶体管或其他分立的电路元件(它们可以分 别地或共同地呈现任意数量的状态)构建。更具体地,CPU502可以响应于包含在本文所公 开的软件模块中的可执行指令来作为有限状态机进行操作。这些计算机可执行指令可以通 过指定CPU502如何在各状态之间转换来变换CPU502,由此变换了构成CPU502的晶体管或 其它分立硬件元件。
[0080] 对本文所提出的软件模块的编码也可变换本文所提出的计算机可读介质的物理 结构。在本说明书的不同实现中,物理结构的具体转换可取决于各种因素。这样的因素的示 例可以包括,但不仅限于:用于实现计算机可读介质的技术、计算机可读介质被表征为主存 储器还是辅存储器等等。例如,如果计算机可读介质被实现为基于半导体的存储器,则本文 所公开的软件可以通过变换半导体存储器的物理状态而在计算机可读介质上编码。例如, 软件可以变换构成半导体存储器的晶体管、电容器或其它分立电路元件的状态。软件还可 变换这些组件的物理状态以在其上存储数据。
[0081] 作为另一示例,本文所公开的计算机可读介质可以使用磁或光技术来实现。在这 些实现中,本文所提出的软件可以在磁或光介质中编码了软件时变换所述磁或光介质的物 理状态。这些转换可包括更改给定磁性介质内的特定位置的磁性特征。这些变换还可以包 括改变给定光学介质内的特定位置的物理特征或特性,以改变这些位置的光学特性。在没 有偏离本说明书的范围和精神的情况下,物理介质的其他转换也是可以的,前面提供的示 例只是为了便于此讨论。
[0082] 鉴于以上内容,应当理解,在计算机体系架构500中发生许多类型的物理变换以 便存储并执行本文所提出的软件组件。还应当理解,计算机体系架构500可包括其它类型 的计算设备,包括手持式计算机、嵌入式计算机系统、个人数字助理、以及本领域技术人员 已知的其它类型的计算设备。还可构想计算机体系架构500可以不包括图5所示的全部组 件、可包括在图5中未明确地示出的其他组件、或者可利用完全不同于图5所示的体系架 构。
[0083] 图6示出能够执行本文所描述的用于呈现数据驱动表单的软件组件的说明性分 布式计算环境600。因此,图6所示的分布式计算环境600可用于提供本文针对用户设备 102和/或web服务器112描述的功能。分布式计算环境600由此可用于执行本文所呈现 的软件组件的任何方面。
[0084] 根据各种实现,分布式计算环境600包括在网络604上操作、与该网络通信、或者 作为该网络的一部分的计算环境602。网络604还可包括各种接入网络。根据各种实现,网 络604的功能可以由图1和5所示的网络104提供。一个或多个客户机设备606A-606N(在 下文中统称和/或通称为"客户机606")可经由网络604和/或其他连接(在图6中未 示出)与计算环境602通信。在所示的实施例中,客户机606包括:诸如膝上型计算机、 台式计算机、或其他计算设备之类的计算设备606A;板式或平板计算设备("平板计算设 备")606B ;诸如移动电话、智能电话、或其他移动计算设备之类的移动计算设备606C ;服务 器计算机606D ;和/或其他设备606N。应当理解,任意数量的客户机606可与计算环境602 通信。在本文中参考图5和7示出并描述客户机606的两个示例计算体系结构。应当理解, 所示客户机606以及本文中示出和描述的计算体系结构是说明性的,并且不应被解释为以 任何方式进行限制。
[0085] 在所示的实施例中,计算环境602包括应用服务器608、数据存储610、以及一个或 多个网络接口 612。根据各种实现,应用服务器608的功能可由作为网络604-部分执行或 者与该网络通信的一个或多个服务器计算机提供。应用服务器608可主存各种服务、虚拟 机、门户、和/或其他资源。在所示的实施例中,应用服务器608主存一个或多个虚拟机614 以供主存应用或其他功能。根据多个实现,虚拟机614主存一个或多个应用和/或软件模 块,用于提供本文描述的用来呈现数据驱动表单的功能。应当理解,本实施例是说明性的, 并且不应被解释为以任何方式进行限制。应用服务器608还主存或提供对一个或多个web 门户、链接页面、网站、和/或其他信息("web门户")616的访问。
[0086] 根据各种实现,应用服务器608还包括一个或多个邮箱服务618以及一个或多个 消息收发服务620。邮箱服务618可包括电子邮件("email")服务。邮箱服务618还可 包括各种个人信息管理("PM")服务,包括但不限于日历服务、联系人管理服务、协作服 务、和/或其他服务。消息收发服务620可包括但不限于即时消息收发服务、聊天服务、论 坛服务、和/或其他通信服务。
[0087] 应用服务器608还可包括一个或多个社交网络服务622。社交网络服务622可包括 各种社交网络服务,包括但不限于用于共享或张贴状态更新、即时消息、链接、照片、视频、 和/或其他信息的服务,用于评论或显示对文章、产品、博客、或其他资源的兴趣的服务,和 /或其他服务。在一些实施例中,社交网络服务622可包括脸谱(FACEB00K)社交网络服务、 LINKEDIN专业人士网络服务、MYSPACE社交网络服务、FOURSQUARE地理网络服务、YAMMER办 公同事网络服务等,或者可由这些服务提供。在其他实施例中,社交网络服务622可由其他 服务、站点、和/或可明确或可不明确地称为社交网络供应商的供应商提供。例如,一些网 站允许用户在各种活动和/或情境(诸如阅读已发表的文章、评论商品或服务、发表、协作、 游戏等)期间经由电子邮件、聊天服务、和/或其他手段彼此交互。这些服务的示例包括但 不限于来自美国华盛顿州雷蒙德市微软公司的WINDOWS LIVE服务和XBOX LIVE服务。其 他服务也是可能的且是可构想的。
[0088] 社交网络服务622还可以包括评论、博客、和/或微博服务。这种服务的示例包括 但不限于YELP评论服务、KUDZU查看服务、0FFICETALK企业微博服务、TWITTER消息服务、 GOOGLE BUZZ服务、和/或其他服务。应当理解,以上服务列表并非穷尽性的,并且为了简洁 起见在本文中未提及多种附加和/或替换社交网络服务622。由此,以上实施例是说明性 的,并且不应被解释为以任何方式进行限制。
[0089] 如图6所示,应用服务器608还可主存其他服务、应用、门户、和/或其他资源("其 他资源")624。因此应该明白,计算环境602可以提供本文公开并提供的概念和技术的集 成,以通过各种邮箱、消息、社交网络、和/或其他服务或资源来呈现数据驱动表单。例如, 在此公开的概念和技术可被用于允许用户查看消息、社交网络连接信息和/或可根据在此 公开的概念和技术来呈现的数据驱动表单内的其他数据。
[0090] 如以上所提及的,计算环境602可包括数据存储610。根据各种实现,数据存储610 的功能由在网络604上操作的或者与该网络通信的一个或多个数据库提供。数据存储610 的功能也可由被配置成主存用于计算环境602的数据的一个或多个服务器计算机提供。数 据存储610可以包括、主存或提供一个或多个实际或虚拟数据存储626A-626N (下文统称和 /或一般地称为"数据存储626")。数据存储626被配置成主存由应用服务器608使用或 创建的数据和/或其他数据。尽管未在图6中示出,但数据存储626还可以在需要时主存 或存储资源110、数据114和/或其他数据。
[0091] 计算环境602可与网络接口 612通信或由该网络接口访问。网络接口 612可包括 各种类型的网络硬件和软件,以支持包括但不限于客户机606和应用服务器608的两个或 更多个计算设备之间的通信。应当理解,网络接口单元612还可用于连接到其他类型的网 络和计算机系统。
[0092] 应当理解,本文中所描述的分布式计算环境600可向本文中所描述的软件元件的 任何方面提供可被配置成执行本文中所公开的软件组件的任何方面的任意数量的虚拟计 算资源和/或其他分布式计算功能。根据本文中所公开的概念和技术的各种实现,分布式 计算环境600向客户机606提供本文中所描述的软件功能作为服务。应当理解,客户机606 可包括实际或虚拟机,包括但不限于服务器计算机、web服务器、个人计算机、移动计算设 备、智能电话、和/或其他设备。这样,本文公开的概念和技术的多个实施例使被配置成访 问分布式计算环境600的任何设备能够使用本文中所述的功能来呈现数据驱动表单。
[0093] 现在转到图7,示出能够执行本文所述的用于呈现数据驱动表单的多个软件组件 的计算设备的计算设备体系架构700。计算设备体系架构700可适用于部分地由于形状因 数、无线连接、和/或电池供电操作而便于移动计算的计算设备。在一些实施例中,计算设 备包括但不限于移动电话、平板设备、板状设备、便携式视频游戏设备等。此外,计算设备体 系架构700可用于图6所示的客户机706中的任一个。此外,计算设备体系架构700的多 个方面可适用于传统的台式计算机、便携式计算机(例如,膝上型计算机、笔记本计算机、 超便携计算机、以及上网本计算机)、服务器计算机、以及诸如参考图5所描述的其他计算 机系统。例如,本文中在以下所公开的单点触摸和多点触摸方面可应用于利用触摸屏或一 些其他启用触摸的设备(诸如启用触摸的跟踪板或者启用触摸的鼠标)的台式计算机。
[0094] 图7所示的计算设备体系架构700包括处理器702、存储器组件704、网络连接组 件706、传感器组件708、输入/输出组件710、以及电源组件712。在所示的实施例中,处理 器702与存储器组件704、网络连接组件706、传感器组件708、输入/输出("I/O")组件 710、以及电源组件712通信。虽然在图7所示的单独的组件之间未示出连接,但是这些组 件可交互以实现设备功能。在一些实施例中,这些组件被安排成经由一条或多条总线(未 示出)通信。
[0095] 处理器702包括中央处理单元("CPU"),中央处理单元被配置成处理数据、执行一 个或多个应用程序的计算机可执行指令并且与计算设备体系架构700的其他组件通信以 执行本文所述的多个功能。处理器702可用于执行本文中所描述的软件组件的多个方面, 特别是至少部分地利用启用触摸的输入的那些方面。
[0096] 在一些实施例中,处理器702包括被配置成加速由CPU执行的操作的图形处理单 元(GPU),包括但不限于通过执行通用科学和工程计算应用以及图形密集的计算应用(诸 如高分辨率视频(例如720PU080P以及更高)、视频游戏、三维(3D)建模应用)等等而执 行的操作。在一些实施例中,处理器702被配置成与分立的GPU (未示出)通信。在任一情 况下,CPU和GPU可根据共同处理CPU/GPU计算模型来配置,其中应用的顺序部分在CPU上 执行而计算密集部分由GPU加速。
[0097] 在一些实施例中,处理器702连同在下文中所描述的其他组件中的一个或多个为 片上系统("SoC")或者包括在该SoC中。例如,Soc可包括处理器702、GPU、网络连接组 件706中的一个或多个、以及传感器组件708中的一个或多个。在一些实施例中,可部分地 利用层叠封装("P〇P")集成电路封装技术来制造处理器702。此外,处理器702可以是单 核或多核处理器。
[0098] 处理器702可根据可从英国剑桥市ARM HOLDINGS许可购得的ARM体系结构来创 建。替换地,处理器702可根据诸如可从美国加利福尼亚州芒廷维尤市英特尔公司购得的 x86体系结构以及其他体系结构来创建。在一些实施例中,处理器702是可从美国加利福 尼亚州圣地亚哥市高通公司购得的SNAPDRAGON SoC、可从美国加利福尼亚州圣巴巴拉市的 NVIDIA购得的TEGRASoC、可从韩国首尔市三星公司购得的HUMMINGBIRD SoC、可从美国德 克萨斯州达拉斯市德州仪器公司购得的开放式多媒体应用平台("〇MAP")S〇C、以上SoC中 的任一个的定制版、或者专有SoC。
[0099] 存储器组件704包括随机存取存储器("RAM")714、只读存储器("ROM")716、集 成存储器("集成存储")718、以及可移动存储存储器("可移动存储")720。在一些实施 例中,RAM714或其一部分、R0M716或其一部分、和/或RAM714和R0M716的某一组合可集成 在处理器702中。在一些实施例中,R0M716被配置成存储固件、操作系统或其一部分(例 如,操作系统内核)、和/或从集成存储718或可移动存储720加载操作系统内核的引导装 入器(bootloader)。
[0100] 集成存储718可包括固态存储器、硬盘、或者固态存储器和硬盘的组合。集成存储 718可焊接或以其他方式连接到逻辑板,该逻辑板还可连接有处理器702以及本文中所描 述的其他组件。由此,集成存储718集成在计算设备中。集成存储718被配置成存储操作 系统或其多个部分、应用程序、数据、以及本文中所描述的其他软件组件。
[0101] 可移动存储720可包括固态存储器、硬盘、或者固态存储器和硬盘的组合。在一些 实施例中,提供可移动存储720来代替集成存储718。在其他实施例中,提供可移动存储720 作为附加的任选存储。在一些实施例中,可移动存储720在逻辑上与集成存储718组合,以 使全部可用的存储变得可用且示出给用户作为集成存储718和可移动存储720的总组合容 量。
[0102] 可移动存储720被配置成插入通过其插入和紧固可移动存储720以便于连接的 可移动存储存储器槽(未示出)或其他机构,通过该连接可移动存储720可与诸如处理 器702之类的计算设备其他组件通信。可移动存储720可以具体化为各种存储器卡格式, 包括但不限于PC卡、CompactFlash卡、存储器棒、安全数字("SD")、小型SD(miniSD)、 微型SD(microSD)、通用集成电路卡((例如,订户身份模块("SM")或通用 SIM( "USIM))、私有格式等。"
[0103] 可以理解,存储器组件704的一个或多个可存储操作系统。根据各个实施例,操作 系统包括但不限于来自SYMBIAN有限公司的SYMBIAN 0S、来自美国华盛顿州雷蒙德市微软 公司的WINDOWS MOBILE 0S、来自微软公司的WINDOWS PHONE 0S、来自微软公司的WINDOWS、 来自美国加利福尼亚州帕洛阿尔托市惠普(Hewlett-Packard)公司的PALM WEB0S、来 自加拿大安大略省沃特卢市的运动研究有限公司(Research IN Motion Limited)的 BLACKBERRY OS、来自美国加利福尼亚州库珀蒂诺市苹果公司的IOS、以及来自美国加利福 尼亚州芒廷维尤市谷歌公司的ANDROID 0S。可构想其他操作系统。
[0104] 网络连接组件706包括无线广域网组件("WWAN组件")722、无线局域网组件 ("WLAN组件")724、以及无线个域网组件("WPAN组件")726。网络连接组件706便于与 网络728的往返通信,该网络可以是WWAN、WLAN、或WPAN。虽然示出单个网络728,但是网 络连接组件706可便于与多个网络的同时通信。例如,网络连接组件706可便于经由WWAN、 WLAN、或WPAN中的一个或多个与多个网络的同时通信。
[0105] 在一些实施例中,网络728由网络104和/或604来提供。在一些实施例中,网络 728包括网络104和/或604。在其他实施例中,网络728提供对网络104和/或604的接 入。网络728可以是WWAN,诸如利用一种或多种移动电信技术经由WWAN组件722向利用计 算设备体系架构700的计算设备提供语音和/或数据服务的移动电信网络。移动电信技术 可包括但不限于全球移动通信系统("GSM")、码分多址("CDMA")系统、CDMA2000、通用 移动电信系统("UMTS")、长期演进("LTE")、以及微波接入全球互通("WiMax")。
[0106] 此外,网络728可利用各种信道接入方法(它们可被或可不被上述标准使用), 这些信道接入方法包括但不限于时分多址("TDMA")、频分多址("FDMA")、CDMA、宽带 CDMA( "W-CDMA")、正交频分多路复用("0FDM")、空分多址("SDMA")等。可使用通用分 组无线电业务("GPRS")、全球演进的增强型数据速率("EDGE")、包括高速下行链路分组 接入("HSDPA")、增强型上行链路("EUL")或者称为高速上行链路分组接入("HSUPA") 的高速分组接入("HSPA")协议系列、演进HSPA( "HSPA+")、LTE、以及各种其他当前和未 来的无线数据接入标准来提供数据通信。网络728可被配置成通过以上技术的任意组合提 供语音和/或数据通信。网络728可被配置成调适成根据未来的生成技术提供语音和/或 数据通信。
[0107] 在一些实施例中,WWAN组件722被配置成提供到网络728的双模、多模连接。例 如,WWAN组件722可被配置成提供到网络728的连接,其中网络728经由GSM和UMTS技术、 或者经由技术的一些其他组合提供服务。替换地,多个WWAN组件722可用于执行这种功能 和/或提供附加功能以支持其他非兼容技术(即,无法被单个WWAN组件支持)。WWAN组件 722可便于与多个网络(例如,UMTS网络和LTE网络)的类似连接。
[0108] 网络728可以是根据一个或多个电气和电子工程师学会("IEEE")802. 11标准 (诸如 ffiEE802. lla、802. llb、802. llg、802. lln、和 / 或未来的 802. 11 标准(在此被称为 WI-FI))而操作的WLAN。还可构想802. 11标准草案。在一些实施例中,利用一个或多个无 线WI-FI接入点来实现WLAN。在一些实施例中,用作WI-FI热点的一个或多个无线WI-FI 接入点是与WWAN连接的另一计算设备。WLAN组件724被配置成经由WI-FI接入点连接到 网络728。可经由加密技术来确保这些连接,这些加密技术包括但不限于WI-FI保护接入 ("WPA")、WPA2、有线等效加密("WEP")等。
[0109] 网络728可以是根据红外数据协会("IrDA")、BLUETOOTH、无线通用串行总线 ("USB")、Z-波、ZIGBEE、或者一些其他近程无线技术操作的WPAN。在一些实施例中,WPAN 组件726被配置成便于经由WPAN与诸如外围设备、计算机、或者其他计算设备之类的其他 设备的通信。
[0110] 传感器组件708包括磁力计730、环境光传感器732、邻近传感器734、加速度计 736、陀螺仪738、以及全球定位系统传感器("GPS传感器")740。可构想其他传感器(诸 如但不限于温度传感器或震动检测传感器)也可结合到计算设备体系架构700中。
[0111] 磁力计730被配置成测量磁场的强度和方向。在一些实施例中,磁力计730提供对 存储在存储器组件704之一内的罗盘应用程序的测量以向用户提供包括基本方向、北、南、 东和西的基准帧中的准确方向。可将类似的测量值提供给包括罗盘组件的导航应用程序。 可构想磁力计730所获取的测量值的其他用途。
[0112] 环境光传感器732被配置成测量环境光。在一些实施例中,环境光传感器732提 供对存储在一个存储器组件704内的应用程序的测量,从而自动地调整显示器的亮度(在 下文中描述)以补偿低光和高光环境。可构想环境光传感器732所获取的测量值的其他用 途。
[0113] 邻近传感器734被配置成检测邻近计算设备而不直接接触的对象或物体的存在。 在一些实施例中,邻近传感器734检测用户身体(例如,用户的脸部)的存在性,并且将该 信息提供给存储在存储器组件704之一内的应用程序,该存储器组件利用邻近信息来启用 或禁用计算设备的一些功能。例如,电话应用程序可响应于接收到邻近信息自动地禁用触 摸屏(在下文中描述),以使用户的脸部在呼叫期间不会无意地结束呼叫或者启用/禁用电 话应用程序内的其他功能。可构想如邻近传感器734检测到的接近度的其他用途。
[0114] 加速度计736被配置成测量准确的加速。在一些实施例中,来自加速度计736的 输出被应用程序作为输入机制以控制应用程序的一些功能。例如,应用程序可以是视频游 戏,其中响应于经由加速度计736接收到的输入移动或以其他方式操纵字符、其一部分、或 者对象。在一些实施例中,将来自加速度计736的输出被提供给应用程序以供在横向和纵 向模式之间切换时使用,从而计算坐标加速或检测下降。可构想加速度计736的其他用途。
[0115] 陀螺仪738被配置成测量和维持定向。在一些实施例中,来自陀螺仪738的输出 被应用程序作为输入机制以控制应用程序的一些功能。例如,陀螺仪738可用于准确地识 别在视频游戏应用或一些其他应用的3D环境内的移动。在一些实施例中,应用程序利用来 自陀螺仪738和加速度计736的输出来增强对应用程序的一些功能的控制。可构想陀螺仪 738的其他用途。
[0116] GPS传感器740被配置成接收来自GPS卫星的信号,以供在计算位置时使用。GPS 传感器740计算的位置可被需要位置信息或者受益于该位置信息的任何应用程序使用。例 如,GPS传感器740计算的位置可与导航应用程序一起使用,以提供从该位置到目的地的方 向、或者从目的地到该位置的方向。此外,GPS传感器740可用于将位置信息提供给基于外 部位置的服务,诸如E911服务。GPS传感器740可在获取位置方位时利用网络连接组件706 中的一个或多个来辅助GPS传感器740获取经由WI-FI、WIMAX、和/或蜂窝三角测量技术 而生成的位置信息。GPS传感器740还可用于辅助GPS( "A-GPS")系统中。
[0117] I/O组件710包括显示器742、触摸屏744、数据I/O接口组件("数据I/O") 746、 音频I/O接口组件("音频I/O") 748、视频I/O接口组件("视频I/O") 750、以及相机752。 在一些实施例中,显示器742和触摸屏744组合。在一些实施例中,数据I/O组件746、音频 I/O组件748、以及视频I/O组件750中的两个或更多个组合。I/O组件710可包括被配置 成支持在下文中所描述的各种接口的分立处理器,或者可包括构建到处理器702中的处理 功能。
[0118] 显示器742是被配置成呈现视觉形式的信息的输出设备。具体而言,显示器742 可呈现图形用户界面("GUI")元素、文本、图像、视频、通知、虚拟按钮、虚拟键盘、消息收发 数据、因特网内容、设备状态、时间、日期、日历数据、偏好、地图信息、位置信息、以及能够以 视觉形式呈现的任何其他信息。在一些实施例中,显示器742是利用任何有源或无源矩阵 技术以及任何背光技术(如果使用的话)的液晶显示器件("LCD")。在一些实施例中,显 示器742是有机发光二极管("0LED")显示器。可构想其他显示器类型。
[0119] 触摸屏744是被配置成检测触摸的存在和位置的输入设备。触摸屏744可以是电 阻触摸屏、电容触摸屏、表面声波触摸屏、红外触摸屏、光学成像触摸屏、色散信号触摸屏、 声音脉冲识别触摸屏,或者可利用任何其他触摸屏技术。在一些实施例中,触摸屏744结合 到显示器742的顶部作为透明层,以使用户能够使用一个或多个触摸与显示器742上所呈 现的对象或其他信息交互。在其他实施例中,触摸屏744是结合到不包括显示器742的计 算设备的表面上的触摸垫。例如,计算设备可具有结合到显示器742的顶部的触摸屏以及 与显不器742相对的表面上的触摸垫。
[0120] 在一些实施例中,触摸屏744是单点触摸触摸屏。在其他实施例中,触摸屏744是 多点触摸触摸屏。在一些实施例中,触摸屏744被配置成检测分立触摸、单点触摸姿势、和/ 或多点触摸姿势。为了方便起见,这些在此处被统称为姿势。现在将描述若干姿势。应当 理解,这些姿势是说明性的,并且不旨在限制所附权利要求书的范围。此外,所描述的姿势、 附加姿势、和/或替换姿势可在软件中实现以与触摸屏744 -起使用。由此,开发者可创建 特定应用程序专用的姿势。
[0121] 在一些实施例中,触摸屏744支持轻叩姿势,其中用户在显示器742上所呈现的项 目上轻叩触摸屏744-次。出于各种原因,可使用轻叩姿势,这些原因包括但不限于打开或 启动用户轻叩的任何事物。在一些实施例中,触摸屏744支持双轻叩姿势,其中用户在显示 器742上所呈现的项目上轻叩触摸屏744两次。出于各种原因,可使用双轻叩姿势,这些原 因包括但不限于分多级放大或缩小。在一些实施例中,触摸屏744支持轻叩并保持姿势,其 中用户轻叩触摸屏744并维持接触达至少预定义时间。出于各种原因,可使用轻叩并保持 姿势,这些原因包括但不限于打开上下文特定的菜单。
[0122] 在一些实施例中,触摸屏744支持平移姿势,其中用户将手指放置在触摸屏744上 并维持与触摸屏744的接触,同时在触摸屏744上移动手指。出于各种原因,可使用平移姿 势,这些原因包括但不限于以受控速率移动通过屏幕、图像、或菜单。还可构想多手指平移 姿势。在一些实施例中,触摸屏744支持轻拂姿势,其中用户在用户想要屏幕移动的方向上 划动(swipe)手指。出于各种原因,可使用轻拂姿势,这些原因包括但不限于水平或垂直滚 动通过菜单和页面。此外,如想要的,轻拂姿势可被用于查看如以上参考图3A-4C解释的 Π 118,虽然也构想了适合用于这些和其他目的的其他姿势或命令。在一些实施例中,触摸 屏744支持收窄和张开姿势,其中用户在触摸屏744上用两个手指(例如,拇指和食指)进 行收窄运动或者将两个手指张开。出于各种原因,可使用收窄和张开姿势,这些原因包括但 不限于逐步地放大或缩小网站、地图、或图片。
[0123] 虽然已参考将一个或多个手指用于执行姿势来描述了以上姿势,但是诸如脚趾之 类的其他附属体以及诸如指示笔之类的物体可用于与触摸屏744交互。如此,以上姿势应 当被理解为说明性的,并且不应被解释为以任何方式进行限制。
[0124] 数据I/O接口组件746被配置成便于数据输入到计算设备以及从计算设备输出数 据。在一些实施例中,例如出于同步操作的目的,数据I/O接口组件746包括被配置成提供 计算设备和计算机系统之间的有线连接的连接器。连接器可以是专有连接器或标准化连接 器,诸如USB、微型USB、小型USB等。在一些实施例中,连接器是用于将计算设备与诸如对 接站、音频设备(例如,数字音乐播放器)、或视频设备之类的另一设备对接的对接连接器。
[0125] 音频I/O接口组件748被配置成向计算设备提供音频输入和/或输出能力。在一 些实施例中,音频I/O接口组件746包括被配置成收集音频信号的话筒。在一些实施例中, 音频I/O接口组件746包括被配置成向耳机或其他外部扬声器提供连接的耳机插孔。在一 些实施例中,音频接口组件748包括用于输出音频信号的扬声器。在一些实施例中,音频1/ 〇接口组件746包括光学音频电缆输出。
[0126] 视频I/O接口组件750被配置成向计算设备提供视频输入和/或输出能力。在一 些实施例中,视频I/O接口组件750包括被配置成接收视频作为来自另一设备(例如,诸 如DVD或蓝光播放器之类的视频媒体播放器)的输入或者将视频作为输出发送到另一设备 (例如,监视器、电视、或者一些其他外部显示器)的视频连接器。在一些实施例中,视频1/ 〇接口组件750包括高清晰度多媒体接口( "HDMI ")、小型HDMI、微型HDMI、显示器端口、或 者到输入/输出视频内容的专有连接器。在一些实施例中,视频I/O接口组件750或其一 部分与音频I/O接口组件748或其一部分组合。
[0127] 相机752可被配置成捕捉静止图像和/或视频。相机752可利用电荷耦合设备 ("CXD")或互补金属氧化物半导体("CMOS")图像传感器来捕捉图像。在一些实施例中, 相机752包括在低光环境中辅助拍摄图片的闪光灯。相机752的设置可被实现为硬件或软 件按钮。
[0128] 虽然未示出,但是还可在计算设备体系架构700中包括一个或多个硬件按钮。硬 件按钮可用于控制计算设备的一些操作方面。硬件按钮可以是专用按钮或多用途按钮。硬 件按钮可以是基于机械或传感器的。
[0129] 所示的电源组件712包括可连接到电池量表(gauge)756的一个或多个电池754。 电池754可以是再充电的或者一次性的。再充电的电池类型包括但不限于锂聚合物、锂电 池、镍镉、以及镍金属氢化物。每一电池754可由一个或多个电池单兀制成。
[0130] 电池量表756可被配置成测量电池参数,诸如电流、电压、以及温度。在一些实施 例中,电池量表756被配置成测量电池的放电速率、温度、使用年限、以及其他因素的影响 以在特定百分比误差内预测剩余寿命。在一些实施例中,电池量表756向应用程序提供测 量值,该应用程序被配置成利用这些测量值将有用的电源管理数据呈现给用户。电源管 理数据可包括所使用电池的百分比、剩余电池的百分比、电池状况、剩余时间、剩余电容量 (例如,瓦时)、电流消耗、以及电压中的一个或多个。
[0131] 电源组件712还可包括电源连接器,该电源连接器可与上述I/O组件710中的一 个或多个组合。电源组件712可经由功率I/O组件744与外部功率系统或充电装备对接。
[0132] 基于上述内容,应当理解,本文已经公开了用于呈现数据驱动表单的技术。虽然用 计算机结构特征、方法和变换动作、特定计算机器、以及计算机可读介质专用的语言描述了 本文中所描述的主题,但是应当理解,所附权利要求书中所定义的本发明不必限于本文中 所描述的具体特征、动作、或介质。相反,这些具体特征、动作以及介质是作为实现权利要求 的示例形式而公开的。
[0133] 以上所述的主题仅作为说明提供,并且不应被解释为限制。可对本文中所描述的 主题作出各种修改和改变,而不必遵循示出和描述的示例实施例和应用且不背离所附权利 要求书中所阐述的本发明的真正精神和范围。
【权利要求】
1. 一种用于呈现数据驱动表单的计算机实现方法,所述计算机实现方法包括执行计算 机实现的操作以用于: 高速缓存与多个数据驱动表单相关联的数据; 在用户设备处呈递多个视图,所述视图中的每一个都包括所述多个数据驱动表单之一 的视图; 显示所述多个视图中的第一个; 隐藏所述多个视图中的至少一个;以及 确定是否在所述用户设备处检测到输入,所述输入对应于用于显示所述多个视图中的 另一个的命令。
2. 如权利要求1所述的方法,其特征在于,所述输入包括在与所述用户设备相关联的 触摸屏处检测到的触摸姿势。
3. 如权利要求2所述的方法,其特征在于,所述用户设备包括平板计算机。
4. 如权利要求1所述的方法,其特征在于,进一步包括响应于检测到所述输入来显示 所述多个视图中的所述另一个。
5. 如权利要求4所述的方法,其特征在于,显示所述多个视图中的所述另一个包括 隐藏所述多个视图中的所述第一个,以及 显示所述多个视图中的所述至少一个。
6. 如权利要求5所述的方法,其特征在于,隐藏所述多个视图中的所述第一个包括显 示滑出所述用户设备的显示设备的可查看空间的所述多个视图中的所述第一个,并且其中 显示所述多个视图中的所述至少一个包括将所述多个视图中的所述至少一个显示进入所 述可查看空间。
7. 如权利要求6所述的方法,其特征在于,进一步包括删除所述多个视图中的所述第 一个。
8. 如权利要求6所述的方法,其特征在于,进一步包括: 确定所述高速缓存是否存储了用于呈递另一数据驱动表单的附加的数据; 响应于确定所述高速缓存没有存储所述附加的数据,用获得的数据来填充所述高速缓 存; 使用所述获得的数据来呈递附加的数据驱动表单;以及 隐藏所述附加的数据驱动表单。
9. 如权利要求1所述的方法,其特征在于,高速缓存所述数据包括将所述数据存储在 在所述用户设备处维护的高速缓存处。
10. -种其上存储有计算机可读指令的计算机存储介质,所述指令在由计算机执行时 致使所述计算机: 高速缓存与多个数据驱动表单相关联的数据; 呈递多个视图,所述视图中的每一个都包括所述多个数据驱动表单之一的视图; 在与所述计算机相关联的显示设备处显示所述多个视图中的第一个; 隐藏所述多个视图中的至少一个; 确定是否在所述计算机处检测到输入,所述输入对应于用于显示所述多个视图中的另 一个的命令;以及 响应于检测到所述输入来显示所述多个视图中的所述另一个,其中设备无关技术被用 于高速缓存所述数据,其中所述设备无关技术被用于呈递所述多个视图中的每一个,并且 其中设备相关技术被用于显示所述多个视图、隐藏所述多个视图中的所述至少一个以及确 定是否检测到输入。
【文档编号】G06F3/06GK104067215SQ201380006832
【公开日】2014年9月24日 申请日期:2013年1月22日 优先权日:2012年1月25日
【发明者】J·A·珀拉斯鲁拉斯奇, A·Y·索 申请人:微软公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1