Javascript网格中的异步多级撤消支持的制作方法

文档序号:6479401阅读:103来源:国知局
专利名称:Javascript网格中的异步多级撤消支持的制作方法
JAVASCRIPT网格中的异步多级撤消支持背景桌面客户机应用程序和“瘦” web应用程序之间的主要区别之一是编辑体验的丰 富性。传统上,web应用程序根据各单独的回发(post-back)来与服务器办理数据,这些回 发在用户导航该应用程序时将数据提交给服务器。一旦用户导航离开网页,则撤消用户动 作通常是不可能的。相反,用户可以更流畅地与客户机应用程序交互,只有在用户准备好时 才保存数据。此外,如果用户在客户机应用程序中工作时犯了编辑错误,则该用户可以选择 “撤消” 一次或多次来还原变更,从而不影响所保存的文件。许多软件技术现在需要雇员通过web类应用程序来与企业服务器上的数据进行 交互。考虑对通常在项目服务器中例如经由网页找到的结构化任务数据的编辑(例如,添 加/删除任务、分配资源、改变排定的数据等)。在没有多级撤消能力的情况下,这一体验是 危险的,因为不允许用户撤消动作。用户可以执行频繁的保存,但将这样的数据集保存到服 务器是缓慢的过程。因此,有效的编辑性能与用户对将复杂数据键入网页的舒适度成比例 地降低。概述以下提出了简化概述以便提供对在此描述的某些新颖实施例的基本理解。该概述 不是详尽的概览,它不旨在标识关键/重要的元素,也不旨在描绘其范围。其唯一的目的是 以简化的形式来介绍一些概念,作为稍后提出的更为详细的描述的序言。所公开的多级撤消体系结构是控制驱动的级联变更系统,其中变更跟踪在异步 (以及同步)场景中无缝地工作。此外,撤消超越保存动作,理解隐式和显式变更之间的差 异,并相应地处理这些变更以提供用于撤消的上下文。客户机应用程序与将该应用程序的数据呈现为表格表示的网格对象相关联,从而 支持编辑和可视化。该应用程序部分地实例化并配置该网格对象。该应用程序可以通过程 序启动对网格中的数据的变更和/或用户可以直接编辑网格中的数据。变更的结果是对应 用程序的通知,该通知包括次序键。该应用程序消费该通知并随后可以通过使用该次序键 调用更新函数来基于同步或异步计算(例如,调度)追加新变更。该应用程序可以在将来 的任何时候使用该键来附加对变更的将来更新。这些更新被正确地收集在一起以用于撤消 /重做。为实现上述及相关目的,本文结合下面的描述和附图描述某些说明性方面。然而, 这些方面仅指示了可利用此处公开的原理的各种方法中的少数几种,且旨在包括所有这些 方面及等效方面。结合附图阅读下面的详细描述,则其他优点和新颖特征将变得清楚。附图简述

图1示出计算机实现的撤消系统。图2示出提供多级数据变更反转操作的客户机-服务器系统的实现。图3示出对数据的异步撤消/重做操作的示例。图4示出基于对变更键的使用来解决异步乱序变更处理的最终数据更新。图5示出作为变更组件的一部分的变更跟踪器和作为反转组件的一部分的撤消
4栈。图6示出网格中的数据的初始网格状态、撤消栈的栈状态、以及变更跟踪器的跟
踪器状态。图7示出隐式变更和对栈状态及跟踪器状态的影响。图8示出网格数据的任务名称的变更和对撤消栈及变更跟踪器的影响。图9示出撤消操作的执行。图10示出提供数据反转操作的计算机实现的方法。图11示出处理显式/隐式变更的方法。图12示出图13示出根据所公开的体系结构的可用于执行多级撤消的计算系统的框图。图14示出用于多级撤消处理的示例性客户机-服务器计算环境的示意性框图。详细描述所公开的体系结构通过在基于网格的应用程序中的客户机上支持多级撤消而桥 接了“瘦”web应用程序的编辑体验中的主要空白。这一特征对多个在线编辑体验而言也是 有用的。例如,多级撤消允许用户对一次编辑更多数据感到更加舒适,并且增加了用户对应 用程序的积极性能的感知。此外,应用程序的在线版本也可获益,使得能撤消和重做记录内 的多个变更以便用户具有对编辑的完全控制。现在参照附图,全部附图中,相同的附图标记用于表示相同的元素。在以下描述 中,为解释起见,描绘了众多具体细节以提供对本发明的全面理解。然而,显然,各新颖实施 例可以在没有这些具体细节的情况下实现。在其他情况下,以框图形式示出了公知的结构 和设备以便于描述它们。图1示出计算机实现的撤消系统100。系统100包括用于跟踪经由web应用程序 106对数据104的异步变更的变更组件102。系统100还包括用于针对对于数据104的数 据变更执行反转操作(例如,撤消、重做)以返回先前状态的反转组件108。对数据104的 变更可以经由数据网格110作出。对数据104的变更可以经由网格110手动地或通过程序 来作出。应用程序106实例化并配置网格110。网格110是存储在应用程序106中的数据 的表格表示,从而支持编辑和可视化。变更是一单元格的数据的先前和之后版本加上造成 该单元格值变更所需的动作。在一个实施例中,web应用程序106是浏览器应用程序,经由该浏览器应用程序对 服务器所主存的网页进行变更。用户随后可针对对于网页文档作出的变更行使多级撤消/ 重做反转操作。在另一实现中,web应用程序106是允许用户与本地数据而非网络数据进 行交互并且行使诸如多级撤消/重做等反转操作的浏览器。图2示出提供多级数据变更反转操作的客户机-服务器系统200的实现。系统200 示出图1的系统100,即,用于经由web应用程序106来跟踪对数据104的异步变更的变更 组件102,和用于对数据变更执行反转操作(例如,撤消、重做)以回到先前状态的反转组件 108。数据变更是经由数据网格110手动地和/或通过程序作出的。在此,数据变更被应用 于web服务器202的web文档(例如,网页)200。随着将编辑传递到网格110,变更通知经 由应用程序106发送到服务器202以供异步确认。一旦得到确认,则这些变更经由应用程序106作为对数据104的更新来发送回网格110。图3示出对数据的异步撤消/重做操作的示例300。异步变更是需要任何数量的 异步确认或扩充的变更。在实体对网格数据作出变更时,这一变更的结果是对应用程序106 的通知。这一通知内包含有次序(即,变更)键。应用程序106消费该通知并随后可以通 过使用该次序键调用更新函数来基于一些同步或异步计算(例如,调度)追加新变更。应 用程序106可以在将来的任何时候自由使用该次序键来附加对这一变更的将来更新。这些 更新被正确地收集在一起以用于撤消/重做。在此,表示成A和B的两个变更被输入到需要异步确认的网格110。在进行编辑 时,网格110按次序来捕捉变更。每一变更都用次序键加上标签。例如,用次序键A(也表 示变更键A)对变更A加上标签,并且用变更键B来表示第二变更B (比变更A的时间晚)。 在进行数据变更时,网格110检测到这一点并向应用程序106 (例如,浏览器)发送通知,其 中应用程序106随后将该通知发送到服务器202以供确认。服务器202处的确认过程可乱 序发生,或者一旦完成确认则服务器可乱序发出先前排序的确认。因此,次序键便于在网格 110处对变更进行排序。在该示例中,第一变更通知请求302从网格110发送到应用程序106以说明数据 变更A,数据变更A是在第二行对具有被标记为“持续时间,,的字段的列作出的并且该持续 时间的新值被设定成5天。在后续数据编辑中,网格110将第二变更通知请求304发送到 应用程序106以说明数据变更B,数据变更B是在第三行对具有被标记为“持续时间”的字 段的列作出的并且该持续时间的新值被设定成7天。变更通知请求(302和304)按次序 (例如,变更A在变更B之前)发送到应用程序106。应用程序106随后将通知请求(302 和304)转发到服务器202,服务器202异步地确认变更请求(302和304)并将确认返回给 应用程序106。在此,服务器202开始对第一变更通知请求302的第一确认过程306。接着,服务 器202接收并开始对第二变更通知请求304的第二确认过程308。服务器202在第一确认 过程306之前完成第二确认过程308。因此,第二更新响应310从服务器202通过应用程序 106发送到网格110以用于更新相关联的数据。第二更新响应310包括表示相对于第一数 据变更A作出该数据变更的次序的次序键B。第二更新响应310还包括该变更是在第三行 在被标记为“结束日期”的字段处作出的以及结束日期的新值“5/27”。这对应于第二变更 通知请求304中的新值“7天”。服务器202随后完成第一确认过程306并将第一更新响应312通过应用程序106 发送到网格110以供更新相关联的数据。第一更新响应312包括表示相对于第二数据变更 B作出该数据变更的次序的次序键A。第一更新响应312还包括该变更是在第二行在被标 记为“结束日期”的字段处作出的以及结束日期的新值“5/25”。这对应于第一变更通知请 求302中的新值“5天”。因此,变更从确认乱序返回(变更B在变更A之前)。图4示出基于对变更键的使用来解决异步乱序处理的最终数据更新。示出了对自 从最后保存操作以来发生的数据变更的请求的结果400。在从服务器202返回时,这些结果 按变更(即,次序)键所指示的逻辑次序(变更B在变更A之后)而非事件实际发生的次 序(变更A在变更B之后)来放置和存储。因此,与变更A相关的变更402被存储在一起 并被表示为发生在变更B之前。类似地,与变更B相关的变更404被存储在一起并被表示
6为发生在变更A之后。撤消和重做反转操作也以此方式处理。因此,如果用户要选择撤消,则即使对变更 A的更新是网格遇到的最后事件,与变更B相关联的两个变更(持续时间和结束日期)也将 被撤消,因为这是用户作出的最后变更,如变更键B所示。实体(例如,用户或系统)与网格交互以对该网格中的数据显式地或隐式地作出 变更。显式变更是对网格作出的直接影响数据的变更(例如,变更任务的开始日期)。隐式 变更是对网格作出的对数据没有影响的变更(例如,调整列的大小)。图5示出作为变更组件102的一部分的变更跟踪器500和作为反转组件108的一 部分的撤消栈502。在实体对网格数据作出变更时,记录每一变更的类型,并且将用于执行 和撤消的函数置于撤消栈502上。撤消栈502是存储最后动作集合的排序历史的数据结构。 在撤消事件发生时,从撤消栈502移除操作并还原操作,直至遇到第一显式变更为止。该第 一显式变更是所还原的最后动作。此时,撤消操作结束。以相同的方式处理后续撤消操作; 撤消命令将在下一显式动作之前还原所有隐式动作,并且随后还原显式动作。这一系统的效果是在撤消操作后,网格的视觉状态恢复到被撤消的动作之前。所 有显式变更都被存储在与撤消栈502分开的结构(变更跟踪器500)中。这一变更跟踪器 500可作为单元格级变更的集合来导出。撤消栈502和变更跟踪器500是独立的结构。在变更发生时,该变更被推送到撤 消栈502,并且如果该变更是显式的则在变更跟踪器500中创建对应于该变更的条目。如果 该变更是隐式的,则不在变更跟踪器500中记录该变更。在撤消事件发生时,从撤消栈502和变更跟踪器500中移除该变更,并且在变更跟 踪器500中记录新值。如果该变更存在于变更跟踪器500中,则移除该变更。如果该变更 不存在于变更跟踪器500中,则将用于还原该变更的动作(其本身是变更)添加到变更日 志。在保存操作发生时,从变更跟踪器500读出变更并将其提交给数据源,并且清除变更跟 踪器500。这一系统的效果是实体可以撤消在保存事件之前发生的动作,因为撤消变更所必 需的信息被存储在撤消栈502中。类似地,变更跟踪器500可以在没有撤消栈502的情况 下工作。图6-9示出用于例示在网格数据状态、撤消栈、以及变更跟踪器中发生的变更的 一系列示图。图6示出网格中的数据的初始网格状态600、撤消栈的栈状态602、以及变更 跟踪器的跟踪器状态604。变更将在网格数据的第二和第三行中发生。实体随后通过决定为围栏上漆应花2天而非1天来作出显式变更。变更网格状态 606包括第二行持续时间列中的变为2天的变更。在作为项目管理应用程序的一部分的项 目的情况下,例如,持续时间的变更造成结束日期(也被称为“结束”)的变更(级联变更)。 创建涵盖这两个变更的级联事务。因此,第二行中“结束”列中的字段信息从“星期一 5/21/ XX”变更为“星期二 5/22/xx”,如变更的网格状态606所示。这些持续时间和结束变更被推送到撤消栈,如栈状态608所示。另外,跟踪器状态 610反映这些变更。图7示出隐式变更和对栈状态及跟踪器状态的影响。在此,实体隐藏 “结束”列,从而变更到网格状态612,这将该变更推送到撤消栈,从而变更到栈状态614,但 不变更变更跟踪器的跟踪器状态610。实体保存该项目,这使得变更跟踪器中的跟踪器状态
7610被清除成栈状态616,因为网格的数据现在与服务器数据相一致。图8示出网格数据的任务名称的变更和对撤消栈及变更跟踪器的影响。实体基于 第三行中任务名称从“清理工具”到“清理项目,,的变更来变更网格状态618。栈状态620 反映被推送到栈的这一变更,并且跟踪器反映跟踪器状态622。图9示出撤消操作的执行。撤消通过从撤消栈和变更跟踪器弹出变更来还原最后 的显式变更,如在栈状态622和跟踪器状态626所示(之前没有变更)。实体随后再一次 执行撤消,这还原隐式变更和其余的显式变更。这一级联效果将变更从撤消栈移除到栈状 态628,将对变更跟踪器的反转变更添加到跟踪器状态630,并将网格状态变更回网格状态 632,其与图6网格状态600相同。以下是表示用于执行所公开的体系结构的各新颖方面的示例性方法的一系列流 程图。尽管出于解释简明的目的,此处例如以流图或流程图形式示出的一个或多个方法被 示出并描述为一系列动作,但是可以理解和明白,各方法不受动作的次序的限制,因为根据 本发明,某些动作可以按与此处所示并描述的不同的次序和/或与其他动作同时发生。例 如,本领域技术人员将会明白并理解,方法可被替换地表示为一系列相互关联的状态或事 件,诸如以状态图的形式。此外,并非在一方法中示出的所有动作都是新颖实现所必需的。图10示出提供数据反转操作的计算机实现的方法。在1000,经由基于客户机的网 格检测服务器的服务器文档中的数据变更。在1002,向变更通知中的变更分配次序键。在 1004,将变更通知发送到服务器以供确认。在1006,基于通知从服务器接收异步确认信息。 在1008,在网格中根据次序键对确认信息进行排序。在1010,基于次序键管理服务器文档 中的撤消/重做操作。图11示出处理显式/隐式变更的方法。在1100,经由网格接收数据变更。在1102, 将变更的类型和用于撤消/重做该变更的函数存储在撤消栈中。在1104,接收反转操作(例 如,重做、撤消)。在1106,从栈中移除撤消操作并还原,直至遇到第一显式变更(其是被还 原的最后动作)为止。图12示出提供数据反转操作的计算机实现的方法。在1200,经由客户机web应 用程序启动对服务器的web文档的数据变更。在1202,将变更作为变更的排序历史存储在 客户机撤消栈中并作为变更条目存储在客户机变更跟踪器中。在1204,在服务器处确认变 更。在1206,从服务器将确认信息异步地接收到web应用程序中。在1208,在客户机处基 于撤消栈中的变更的排序历史和变更跟踪器中的变更条目来管理web文档中的撤消/重做 操作。如在本申请中所使用的,术语“组件”和“系统”旨在表示计算机相关的实体,其可 以是硬件、硬件和软件的组合、软件、或者执行中的软件。例如,组件可以是但不限于,在处 理器上运行的进程、处理器、硬盘驱动器、多个(光和/或磁存储介质的)存储驱动器、对 象、可执行代码、执行的线程、程序、和/或计算机。作为说明,运行在服务器上的应用程序 和服务器都可以是组件。一个或多个组件可以驻留在进程和/或执行的线程内,且组件可 以位于一台计算机上和/或分布在两台或更多的计算机之间。现在参考图13,示出了可用于执行根据所公开的体系结构的多级撤消的计算系统 1300的框图。为了提供用于其各方面的附加上下文,图13及以下讨论旨在提供对其中可实 现该各方面的合适的计算系统1300的简要概括描述。尽管以上描述是在可在一个或多个计算机上运行的计算机可执行指令的一般上下文中进行的,但是本领域的技术人员将认识 到,新颖实施例也可结合其他程序模块和/或作为硬件和软件的组合来实现。一般而言,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、组 件、数据结构等等。此外,本领域的技术人员可以理解,本发明的方法可用其他计算机系统 配置来实施,包括单处理器或多处理器计算机系统、小型计算机、大型计算机、以及个人计 算机、手持式计算设备、基于微处理器的或可编程消费电子产品等,其每一个都可操作上耦 合到一个或多个相关联的设备。所示各方面也可以在其中某些任务由通过通信网络链接的远程处理设备来执行 的分布式计算环境中实施。在分布式计算环境中,程序模块可以位于本地和远程存储器存 储设备中。计算机通常包括各种计算机可读介质。计算机可读介质可以是可由计算机访问的 任何可用介质,且包括易失性和非易失性介质、可移动和不可移动介质。作为示例而非限 制,计算机可读介质可以包括计算机存储介质和通信介质。计算机存储介质包括以存储如 计算机可读指令、数据结构、程序模块或其他数据等信息的任何方法或技术来实现的易失 性和非易失性、可移动和不可移动介质。计算机存储介质包括但不限于RAM、R0M、EEPR0M、闪 存或者其他存储器技术、CD-ROM、数字视频盘(DVD)或其他光盘存储、磁带盒、磁带、磁盘存 储或其他磁存储设备、或可以用于存储所需信息并且可以由计算机访问的任何其他介质。再次参考图13,用于实现各方面的示例性计算系统1300包括具有处理单元1304、 系统存储器1306和系统总线1308的计算机1302。系统总线1308向包括但不限于系统存 储器1306的各系统组件提供到处理单元1304的接口。处理单元1304可以是市场上可购 买到的各种处理器中的任意一种。双微处理器和其他多处理器体系结构也可用作处理单元 1304。系统总线1308可以是若干种总线结构中的任一种,这些总线结构还可互连到存 储器总线(带有或没有存储器控制器)、外围总线、以及使用各类市场上可购买到的总线体 系结构中的任一种的局部总线。系统存储器1306可包括非易失性存储器(NON-VOL) 1310 和/或易失性存储器1312 (例如随机存取存储器(RAM))。基本输入/输出系统(BIOS)可 被存储在非易失性存储器1310 (例如ROM、EPROM、EEPROM等)中,其中BIOS存储帮助诸如 在启动期间在计算机1302内的元件之间传输信息的基本例程。易失性存储器1312还可包 括诸如静态RAM等高速RAM来用于高速缓存数据。计算机1302还包括内置硬盘驱动器(HDD) 1314(例如,EIDE、SATA),该内置HDD 1314还可被配置成在合适的机壳中外部使用;磁软盘驱动器(FDD) 1316 (例如,从可移动磁 盘1318中读取或向其写入);以及光盘驱动器1320 (例如,从⑶-ROM盘1322中读取,或从 诸如DVD等其他高容量光学介质中读取或向其写入)。HDD 1314,FDD 1316、以及光盘驱动 器1320可分别由HDD接口 1324、FDD接口 1326和光盘驱动器接口 1328来连接到系统总线 1308。用于外置驱动器实现的HDD接口 1324可包括通用串行总线(USB)和IEEE 1394接 口技术中的至少一种或两者。驱动器及相关联的计算机可读介质提供了对数据、数据结构、计算机可执行指令 等的非易失性存储。对于计算机1302,驱动器和介质容纳适当的数字格式的任何数据的存 储。尽管以上对计算机可读介质的描述涉及HDD、可移动磁盘(例如FDD)以及诸如CD或DVD等可移动光学介质,但是本领域的技术人员应当理解,示例性操作环境中也可使用可由 计算机读取的任何其他类型的介质,诸如zip驱动器、磁带盒、闪存卡、盒式磁带等等,并且 任何这样的介质可包含用于执行所公开的体系结构的新颖方法的计算机可执行指令。多个程序模块可存储在驱动器和易失性存储器1312中,包括操作系统1330、一个 或多个应用程序1332、其他程序模块1334和程序数据1336。该一个或多个应用程序1332、 其他程序模块1334、以及程序数据1336可包括例如变更组件102、数据104、web应用程序 106、反转组件108、数据网格110、变更通知(302和304)、更新响应(310和312)、变更跟 踪器 500、撤消栈 502、网格状态(600、606、612、618、以及 632)、栈状态(602、608、614、620、 624、以及 628)、以及跟踪器状态(604、610、616、622、626、以及 630)。操作系统、应用程序、模块和/或数据的全部或部分也可被高速缓存在易失性存 储器1312中。应该明白,所公开的体系结构可以用市场上可购得的各种操作系统或操作系 统的组合来实施。用户可以通过一个或多个有线/无线输入设备,例如键盘1338和诸如鼠标1340 等定点设备将命令和信息输入到计算机1302中。其他输入设备(未示出)可包括话筒、IR 遥控器、操纵杆、游戏手柄、指示笔、触摸屏等等。这些和其他输入设备通常通过耦合到系统 总线1308的输入设备接口 1342连接到处理单元1304,但也可通过其他接口连接,如并行端 口、IEEE1394串行端口、游戏端口、USB端口、IR接口等等。监视器1344或其他类型的显示设备也经由诸如视频适配器1346等接口来连接到 系统总线1308。除了监视器1344之外,计算机通常包括诸如扬声器、打印机等其他外围输 出设备(未示出)。计算机1302可使用经由有线和/或无线通信至一个或多个远程计算机,诸如远程 计算机1348的逻辑连接在网络化环境中操作。远程计算机1348可以是工作站、服务器计 算机、路由器、个人计算机、便携式计算机、基于微处理器的娱乐设备、对等设备或其他常见 的网络节点,并且通常包括相对于计算机1302描述的许多或所有元件,尽管为简明起见仅 示出了存储器/存储设备1350。所描绘的逻辑连接包括到局域网(LAN) 1352和/或例如广 域网(WAN) 1354等更大的网络的有线/无线连接。这一 LAN和WAN连网环境常见于办公室 和公司,并且方便了诸如内联网等企业范围计算机网络,所有这些都可连接到例如因特网 等全球通信网络。当在LAN连网环境中使用时,计算机1302通过有线和/或无线通信网络接口或适 配器1356连接到LAN 1352。适配器1356可以方便到LAN 1352的有线和/或无线通信,并 且还可包括其上设置的用于使用适配器1356的无线功能进行通信的无线接入点。当在WAN连网环境中使用时,计算机1302可包括调制解调器1358,或连接到WAN 1354上的通信服务器,或具有用于通过WAN 1354,诸如通过因特网建立通信的其他装置。 或为内置或为外置以及有线和/或无线设备的调制解调器1358经由输入设备接口 1342连 接到系统总线1308。在联网环境中,相对于计算机1302所描述的程序模块或其部分可以存 储在远程存储器/存储设备1350中。应该理解,所示网络连接是示例性的,并且可以使用 在计算机之间建立通信链路的其他手段。计算机1302可用于使用IEEE 802标准家族来与有线和无线设备或实体通信,例 如在操作上安置成与例如打印机、扫描仪、台式和/或便携式计算机、个人数字助理(PDA)、
10通信卫星、任何一件与无线可检测标签相关联的设备或位置(例如,电话亭、报亭、休息室) 以及电话进行无线通信(例如,IEEE 802. 11空中调制技术)的无线设备。这至少包括 Wi-Fi (即无线保真)、WiMax和蓝牙TM无线技术。由此,通信可以如对于常规网络那样是 预定义结构,或者仅仅是至少两个设备之间的自组织(ad hoc)通信。Wi-Fi网络使用称为 IEEE 802. llx(a、b、g等等)的无线电技术来提供安全、可靠、快速的无线连接。Wi-Fi网络 可用于将计算机彼此连接、连接到因特网以及连接到有线网络(使用IEEE 802. 3相关介质 和功能)。现在参考图14,示出了用于多级撤消的示例性客户机-服务器计算环境1400的示 意性框图。环境1400包括一个或多个客户机1402。客户机1402可以是硬件和/或软件 (例如,线程、进程、计算设备)。例如,客户机1402可容纳cookie和/或相关联的上下文 fn息ο环境1400还包括一个或多个服务器1404。服务器1404也可以是硬件和/或软件 (例如,线程、进程、计算设备)。服务器1404可以例如通过使用本体系结构来容纳线程以 执行变换。在客户机1402和服务器1404之间的一种可能的通信能够以适合在两个或多个 计算机进程之间传输的数据分组的形式进行。数据分组可包括例如cookie和/或相关联 的上下文信息。环境1400包括可以用来使客户机1402和服务器1404之间通信更容易的 通信框架1406 (例如,诸如因特网等全球通信网络)。通信可经由有线(包括光纤)和/或无线技术来促进。客户机1402操作上被连 接到可以用来存储对客户机1402本地的信息(例如,cookie和/或相关联的上下文信息) 的一个或多个客户机数据存储1408。同样地,服务器1404可在操作上连接到可以用来存储 对服务器1404本地的信息的一个或多个服务器数据存储1410。客户机1402可包括web应用程序106,并且客户机数据存储1408可包括数据104。 服务器1404可包括服务器202和异步确认过程(306和308),并且服务器数据存储1410可 包括文档200。上面描述的包括所公开的体系结构的各示例。当然,描述每一个可以想到的组件 和/或方法的组合是不可能的,但本领域内的普通技术人员应该认识到,许多其他组合和 排列都是可能的。因此,该新颖体系结构旨在涵盖所有这些落入所附权利要求书的精神和 范围内的更改、修改和变化。此外,就在说明书或权利要求书中使用术语“包括”而言,这一 术语旨在以与术语“包含”在被用作权利要求书中的过渡此时所解释的相似的方式为包含 性的。
权利要求
一种计算机实现的撤消系统(100),包括用于跟踪经由web应用程序对数据的异步变更的变更组件(102);以及用于对所述数据变更执行反转操作以返回先前状态的反转组件(108)。
2.如权利要求1所述的系统,其特征在于,所述数据变更与网页相关联。
3.如权利要求1所述的系统,其特征在于,所述web应用程序是浏览器应用程序。
4.如权利要求1所述的系统,其特征在于,所述数据变更是经由基于客户机的数据网 格来作出的。
5.如权利要求4所述的系统,其特征在于,所述数据变更是经由所述网格来手动地或 通过程序作出的。
6.如权利要求1所述的系统,其特征在于,所述反转操作将所述数据恢复到根据至少 两个先前变更而存在的状态。
7.如权利要求1所述的系统,其特征在于,所述web应用程序接收变更通知,所述通知 包括将所述变更相对于其他变更来记录的次序键。
8.如权利要求1所述的系统,其特征在于,所述变更与服务器文档相关联,其被输入基 于客户机的撤消栈以用于所述反转操作并在基于客户机的变更跟踪器中进行跟踪。
9.一种提供数据反转操作的计算机实现的方法,包括经由基于客户机的网格检测服务器的服务器文档中的数据变更(1000); 向变更通知中的变更分配次序键(1002); 将所述变更通知发送到所述服务器以供确认(1004); 基于所述通知从所述服务器接收异步确认信息(1006); 根据所述次序键对所述网格中的确认信息进行排序(1008);以及 基于所述次序键管理所述服务器文档中的撤消/重做操作(1010)。
10.如权利要求9所述的方法,其特征在于,还包括基于所述网格中的变更通过撤消栈 和变更跟踪器来级联变更。
11.如权利要求9所述的方法,其特征在于,还包括作为撤消/重做操作的一部分,将变 更存储在撤消栈中并且还原所述变更直至到达第一显式变更。
12.如权利要求9所述的方法,其特征在于,还包括将显式变更存储在变更跟踪器数据 结构中。
13.如权利要求9所述的方法,其特征在于,还包括还原下一显式动作之前的所有隐式 变更并随后还原该下一显式动作。
14.一种提供数据反转操作的计算机实现的方法,包括经由客户机web应用程序启动对服务器的web文档的数据变更(1200); 将所述变更作为变更的排序历史存储在客户机撤消栈中并作为变更条目存储在客户 机变更跟踪器中(1202);在所述服务器处确认所述变更(1204);从所述服务器将确认信息异步地接收到所述web应用程序中(1206);以及 基于所述撤消栈中的变更的排序历史和所述变更跟踪器中的变更条目来管理所述web 文档中的撤消/重做操作(1208)。
15.如权利要求14所述的方法,其特征在于,还包括经由客户机数据网格来展示所述数据变更和所述数据变更的可视化。
16.如权利要求14所述的方法,其特征在于,还包括撤消所述web文档中的在所述web 应用程序中执行的保存操作之前发生的变更。
17.如权利要求14所述的方法,其特征在于,还包括响应于保存操作,从所述变更跟踪 器读出变更,将所述变更提交给数据源,并清除所述变更跟踪器。
18.如权利要求14所述的方法,其特征在于,所述变更的排序历史是基于分配给每一 变更的变更键的。
19.如权利要求14所述的方法,其特征在于,还包括将隐式变更信息和显式变更信息 连同用于执行来撤消隐式和显式变更的函数一起存储在所述撤消栈中。
20.如权利要求14所述的方法,其特征在于,还包括导出解释变更来作为单元格级变 更的集合。
全文摘要
一种用在基于网格的应用程序中的客户机上的多级撤消的体系结构。该体系结构是控制驱动的级联变更系统,其中变更跟踪在异步(以及同步)场景中无缝地工作。客户机应用程序与网格对象相关联,并且实例化并配置该网格对象。该应用程序可以启动对网格中的数据的变更和/或用户可以直接编辑网格中的数据。变更的结果是对应用程序的通知,该通知包括次序键。该应用程序消费该通知并随后可以通过使用该次序键调用更新函数来基于同步或异步计算追加新变更。该应用程序使用该键来附加正确地收集在一起以用撤消/重做的进一步更新。
文档编号G06F9/00GK101911010SQ200880124599
公开日2010年12月8日 申请日期2008年12月22日 优先权日2008年1月8日
发明者A·R·库内奥, B·沃莱恩, E·M·岑茨 申请人:微软公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1