发布信息

一种基于树结构的文档处理方法、装置、设备和介质与流程

作者:admin      2022-09-02 17:38:11     482



计算;推算;计数设备的制造及其应用技术1.本公开涉及计算机文档数据处理技术,尤其涉及一种基于树结构的文档处理方法、装置、设备和介质。背景技术:2.目前人们已经大量使用计算机软件进行文档处理,且随着协同办公需求的增加,使得文档在线协同处理的技术逐步发展起来。3.在线协同处理的文档,可能会存在多个用户需要查看、编辑、或相互引用内容的复杂需求,如何有效管理多个用户的各种操作,保持文档的准确性和一致性,是现有技术的研究方向之一。技术实现要素:4.本公开实施例提供一种基于树结构的文档处理方法、装置、设备和介质,以使在线协同处理的文档满足多种可操作需求。5.第一方面,本公开实施例提供了一种基于树结构的文档处理方法,包括:6.获取当前文档的文档操作事件;7.根据所述文档操作事件,在所述当前文档的树结构中确定对应的文档节点和/或内容块节点;8.根据文档节点的文档版本标识以及内容块节点的内容块版本标识之间的对应关系,执行所述文档操作事件;9.其中,所述文档包括至少一个内容块,所述树结构中包括文档节点和内容块节点,所述文档节点和内容块节点之间的父子关系表征文档和内容块之间的归属关系;所述文档节点记录有文档版本标识序列,所述内容块节点记录有内容块版本标识序列;所述文档版本标识用于表征归属于所述文档的内容块的更新。10.第二方面,本公开实施例还提供了一种基于树结构的文档处理装置,包括:11.第一获取模块,用于获取当前文档的文档操作事件;12.第一确定模块,用于根据所述文档操作事件,在所述当前文档的树结构中确定对应的文档节点和/或内容块节点;13.执行模块,用于根据文档节点的文档版本标识以及内容块节点的内容块版本标识之间的对应关系,执行所述文档操作事件;14.其中,所述文档包括至少一个内容块,所述树结构中包括文档节点和内容块节点,所述文档节点和内容块节点之间的父子关系表征文档和内容块之间的归属关系;所述文档节点记录有文档版本标识序列,所述内容块节点记录有内容块版本标识序列;所述文档版本标识用于表征归属于所述文档的内容块的更新。15.第三方面,本公开实施例还提供了一种基于树结构的文档处理设备,包括:16.一个或多个处理器;17.存储器,用于存储一个或多个程序;18.当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如本公开实施例中任一项所述的基于树结构的文档处理方法。19.第四方面,本公开实施例还提供了一种介质,所述介质存储有计算机程序,所述计算机程序被处理器执行时实现如本公开实施例中任一项所述的基于树结构的文档处理方法。20.本公开通过在当前文档中增加文档节点的文档版本标识,在当前文档执行文档操作事件时,可直接根据文档节点的文档版本标识和内容块节点的内容块版本标识之间的对应关系,对与文档版本标识相对应的所有内容块版本标识的内容块节点执行文档操作事件,实现了对当前文档的统一操作,提升了用户对当前文档的操作便捷性。附图说明21.结合附图并参考以下具体实施方式,本公开各实施例的上述和其他特征、优点及方面将变得更加明显。贯穿附图中,相同或相似的附图标记表示相同或相似的元素。应当理解附图是示意性的,原件和元素不一定按照比例绘制。22.图1是本公开实施例提供的一种文档的树结构示意图;23.图2为本公开实施例一提供的一种基于树结构的文档处理方法的流程图;24.图3是本公开实施例二提供的一种基于树结构的文档处理方法的流程图;25.图4是本公开实施例三提供的一种基于树结构的文档处理方法的流程图;26.图5是本公开实施例四提供的一种基于树结构的文档处理方法的流程图;27.图6是本公开实施例五提供的一种基于树结构的文档处理方法的流程图;28.图7是本公开实施例六提供的一种基于树结构的文档处理方法的流程图;29.图8是本公开实施例七提供的一种基于树结构的文档处理方法的流程图;30.图9是本公开实施例八提供的一种基于树结构的文档处理方法的流程图;31.图10是本公开实施例九提供的一种文档树结构的示意图;32.图11是本公开实施例使提供的一种基于树结构的文档处理装置的结构框图;33.图12是本公开实施例使提供的一种基于树结构的文档处理设备的结构框图。具体实施方式34.下面将参照附图更详细地描述本公开的实施例。虽然附图中显示了本公开的某些实施例,然而应当理解的是,本公开可以通过各种形式来实现,而且不应该被解释为限于这里阐述的实施例,相反提供这些实施例是为了更加透彻和完整地理解本公开。应当理解的是,本公开的附图及实施例仅用于示例性作用,并非用于限制本公开的保护范围。35.应当理解,本公开的方法实施方式中记载的各个步骤可以按照不同的顺序执行,和/或并行执行。此外,方法实施方式可以包括附加的步骤和/或省略执行示出的步骤。本公开的范围在此方面不受限制。36.本文使用的术语“包括”及其变形是开放性包括,即“包括但不限于”。术语“基于”是“至少部分地基于”。术语“一个实施例”表示“至少一个实施例”;术语“另一实施例”表示“至少一个另外的实施例”;术语“一些实施例”表示“至少一些实施例”。其他术语的相关定义将在下文描述中给出。37.需要注意,本公开中提及的“第一”、“第二”等概念仅用于对不同的装置、模块或单元进行区分,并非用于限定这些装置、模块或单元所执行的功能的顺序或者相互依存关系。38.需要注意,本公开中提及的“一个”、“多个”的修饰是示意性而非限制性的,本领域技术人员应当理解,除非在上下文另有明确指出,否则应该理解为“一个或多个”。39.本公开实施方式中的多个装置之间所交互的消息或者信息的名称仅用于说明性的目的,而并不是用于对这些消息或信息的范围进行限制。40.本公开实施例适用于对在线文档的处理,可以由基于树结构的文档处理装置来执行,该装置可以采用硬件和/或软件的方式实现。该装置可配置于具有存储和计算能力的电子设备中,例如,可集成于服务端中,由服务端对在线文档进行处理,由此来响应用户通过客户端对在线文档的编辑操作。优选适用于由服务端为多个客户端提供在线文档编辑、查阅等服务的场景,文档的实体内容和树结构可以存储于服务端。41.为了清楚介绍本公开实施例的技术方案,首先介绍本公开实施例所适用的文档的树结构。对于文档(page),其可包括各种形式的文档内容,例如文字、图片、表格、链接和表格等各种多媒体实体内容,这些实体内容均归属于该文档。为了方便某些实体内容在多个地方被引用,因此将实体内容独立为内容块(block),能够以内容块为单位方便地被其他文档或内容块引用。内容块是一份具有独立可协同、可记录能力的数据。所谓引用关系,是指源文档中的源内容块被其他目的文档或目的内容块所引用的关系,在目的文档或目的内容块中,可以复制源内容块的内容,同时可选的有或没有标记来向用户展示此引用关系。内容块的定义可以由在线文档软件预先设置,也可以由用户自定义设置,例如,可基于内容类型,区分内容块,如文字、图片、表格等为不同类型的内容;还可以基于预设的分隔符区分内容块,如“回车符”、“段落分隔符”、“分节符”等;还可以由用户操作设置内容块的分隔边界。42.示例性的,每个文档可以对应有树结构,服务端通过树结构、或树结构的等同物来对文档进行管理。多个文档的树结构可通过引用等关联关系而结合在一起。图1是本公开实施例提供的一种文档的树结构示意图。参考图1所示,简单示出了一个文档的树结构。该文档包括两个内容块,一个为根内容块,另一个为非根节点的其他内容块。所谓根内容块,是文档创建时产生的基础内容,一篇文档可以只有一个根内容块。其他内容块是归属于文档的非根内容块,可以在创建时,基于模板与根内容块一起产生,也可以是创建后由用户逐步添加的内容块。如图1所示,树结构包括两类节点,即文档节点和内容块节点。文档节点(r节点)对应于文档,同时也对应于文档的根内容块。内容块节点(a节点)对应于内容块a。43.在树结构中,所述文档节点和内容块节点之间的父子关系表征文档和内容块之间的归属关系。即,a节点的父节点为r节点,r节点的子节点为a节点,两者之间存在父子关系。44.所述文档节点记录有文档版本标识序列,所述内容块节点记录有内容块版本标识序列;所述文档版本标识用于表征归属于所述文档的内容块的更新。具体如图1所示,a节点包括内容块版本标识序列,即rv序列,内容块版本标识也称为版本记录(record version,简称rv),用于记录内容块内容发生变化的各个版本。归属于所述文档的内容块中包括一个根内容块,所述文档节点还记录有根内容块的内容块版本标识序列。如果r节点包括根内容块,因此也可以包括rv序列。如图1所示,文档节点还记录有文档版本标识序列,即tv序列,tv用于表征归属于该文档的内容块的更新。例如,每个内容块节点的新增rv,均可以导致新增tv。45.在树结构中,还可以进一步记录编辑操作标识(tid,transaction id),编辑操作代表一次事务操作,该事务操作可导致内容块的内容变化或其他树结构发生变化的操作。如图1所示,可选的,所述文档节点和所述内容块节点还记录有编辑操作标识序列,所述编辑操作标识用于表征更新内容块的编辑操作。tv可以与每个节点的rv一一对应记录;或者,当一个编辑操作导致多个内容块的rv发生变化时,也可以是一个tv记录一个tid对应的多个rv。46.在树结构中,可以记录有树结构快照,即对于每个tv,记录该tv状态下,该文档所有内容块的最新rv。树结构快照还可以记录该tv所对应的新增rv。本公开对快照的形式不做限制,例如可以通过表格的形式记录快照。47.树结构的节点除了记录内容块和文档之间的关系,以及版本变化外,还可以对应记录内容块的实体内容,每个内容块节点可对应记录每个rv相对于前一个rv该内容块的实体变化内容。48.实施例一49.图2为本公开实施例一提供的一种基于树结构的文档处理方法的流程图。该方法可以由配置于电子设备中的文档处理装置来执行。该电子设备可以终端设备,优选可以是服务端设备。如图2所示,本实施例中的方法包括如下步骤:50.s110、获取当前文档的文档操作事件。51.其中,当前文档可以为文档处理设备的显示界面上所展示的在线可编辑文档。在实际操作过程中,对当前文档的文档类型不作限定,例如可以是用于承载多种内容类型的文档,例如承载文字、图片、视频、程序等,或者可以是用于承载表格的文档,其中表格可以支持一种或多种数据类型。其中的在线文档包括可以实现协同的文档、或能够实现历史版本回退的文档。52.其中,文档操作事件指的是对当前文档中的内容块进行编辑的事件或者服务端对文档进行更新的事件。在实施例中,文档中至少包括一个内容块,可以理解为,对当前文档的文档操作事件,指的是对当前文档中至少一个内容块进行操作的事件。53.在实际操作过程中,文档操作事件,可以通过用户对当前文档的操作指令而生成,也可以是服务端获取到的文档或内容块更新指示而产生。示例性地,可以在接收到用户对当前文档中内容块的操作指令时,按照该操作指令生成对应的文档操作事件。其中,用户对当前文档的操作指令的实现方式,可以为用户的触屏操作,也可以是用户的鼠标操作,也可以是用户通过热键产生的触发操作,对此并不进行限定。示例性地,文档操作事件可以包括下述之一:版本变更事件;内容块更新内容推送事件。其中,版本变更事件包括将当前文档回退至旧版本的事件、或者由旧版本恢复至新版本的事件;内容块更新内容推送事件包括在内容块的实体内容发生更新时,服务端向客户端推送更新实体内容的事件。54.s120、根据文档操作事件,在当前文档的树结构中确定对应的文档节点和/或内容块节点。55.其中,文档包括至少一个内容块,树结构中包括文档节点和内容块节点,文档节点和内容块节点之间的父子关系表征文档和内容块之间的归属关系;文档节点记录有文档版本标识序列,内容块节点记录有内容块版本标识序列;文档版本标识用于表征归属于文档的内容块的更新。56.在实施例中,在文档中内容块发生一次更新时,相应的产生一个新的文档版本标识,可以理解为,文档版本标识与文档中内容块的一次更新是一一对应关系。需要说明的是,对当前文档的文档操作事件,指的是对当前文档中内容块的更新事件。在实施例中,树结构中的文档节点一般为父节点;内容块节点可以为父节点,也可以为子节点。57.在实施例中,在获取到当前文档的文档操作事件之后,确定当前文档所在的树结构,并在该树结构中查找文档操作事件涉及到的文档节点和/或内容块节点。可以通过操作事件中包括的文档或内容块标识、名称等确定对应的节点。58.s130、根据文档节点的文档版本标识以及内容块节点的内容块版本标识之间的对应关系,执行文档操作事件。59.其中,文档版本标识用于记录当前文档中内容块发生了变化,即文档版本标识序列用于表征整个文档的历史记录,可以通过文档版本标识序列,获取到文档中内容块的变化历史,以便于对文档的版本进行回退、恢复等版本切换操作。在此需要说明的是,文档节点的文档版本标识和内容块版本标识之间可以是一对一的,也可以是一对多的,对此并不进行限定。当然,文档节点的文档版本标识和文档节点的内容块版本标识可以是一对一的,相对比一对多的情况设计更简单。60.在实施例中,在当前文档发生更新时,当前文档中文档节点对应的文档版本标识发生变化;相应的,在当前文档中的内容块发生更新时,当前文档中内容块节点对应的内容块版本标识和内容块所在的当前文档的文档版本标识都发生变化。可以理解为,在当前文档中的内容块发生更新时,当前文档中的文档节点和内容块节点均发生更新;在当前文档发生更新时,当前文档中的文档节点发生更新。61.当然,当前文档中文档节点的文档版本标识与每个内容块节点所对应最新的内容块版本标识之间建立对应关系,即文档节点的文档版本标识与每个内容块节点的最新版本之间建立对应关系,以便于在接收到用户对当前文档的文档操作事件之后,根据文档节点的文档版本标识与内容块节点最新版本对应的内容块版本标识之间的对应关系,对当前文档中的内容块统一执行文档操作事件。62.本实施例的技术方案,通过获取当前文档的文档操作事件;根据文档操作事件,在当前文档的树结构中确定对应的文档节点和/或内容块节点;根据文档节点的文档版本标识以及内容块节点的内容块版本标识之间的对应关系,执行文档操作事件。本实施例的技术方案,通过在当前文档中增加文档节点的文档版本标识,在当前文档执行文档操作事件时,可直接根据文档节点的文档版本标识和内容块节点的内容块版本标识之间的对应关系,对与文档版本标识相对应的所有内容块版本标识的内容块节点执行文档操作事件,实现了对当前文档的统一操作,提升了用户对当前文档的操作便捷性。63.实施例二64.图3是本公开实施例二提供的一种基于树结构的文档处理方法的流程图。本实施例与上述实施例一结合,对文档处理方法作进一步的说明。需要说明的是,s240-s260可以在s230之后执行,也可以在s210之前执行,对此并不进行限定。示例性地,本实施例以s240-s260在s230之后执行为例,对文档处理过程进行说明。如图3所示,本实施例中的方法包括如下步骤:65.s210、获取当前文档的文档操作事件。66.s220、根据文档操作事件,在当前文档的树结构中确定对应的文档节点和/或内容块节点。67.s230、根据文档节点的文档版本标识以及内容块节点的内容块版本标识之间的对应关系,执行文档操作事件。68.其中,文档包括至少一个内容块,树结构中包括文档节点和内容块节点,文档节点和内容块节点之间的父子关系表征文档和内容块之间的归属关系;文档节点记录有文档版本标识序列,内容块节点记录有内容块版本标识序列;文档版本标识用于表征归属于文档的内容块的更新。69.s240、获取对当前文档的文档编辑事件。70.在实施例中,每个文档中均至少包括一个内容块。可以理解为,对当前文档的文档编辑事件,指的是对当前文档中的至少一个内容块所执行的编辑事件。71.在此需要说明的是,对于当前文档的文档编辑事件,可以根据需要对文档编辑者和编辑时间进行记录。示例性地,在用户对当前文档的内容块执行编辑操作时,将文档编辑者和编辑时间记录下来,以通过对文档编辑者和编辑时间的记录,便于后续对文档进行回溯、查询、展示等进一步处理,为文档处理多样性提供便利。72.s250、根据文档编辑事件中的编辑操作,更新树结构中内容块节点的编辑操作标识和内容块版本标识,或更新内容块节点与文档节点的父子关系。73.在实施例中,文档编辑事件中的编辑操作包括下述之一:内容块的内容更新操作;内容块新增操作;内容块删除操作。当然,编辑操作可以为上述其中一种操作,也可以为两种或多种操作,对此并不进行限定。其中,内容块的内容更新操作,指的是对内容块中的实体内容进行修改的操作;内容块新增操作,指的是对内容块中的实体内容进行增加的操作;内容块删除操作,指的是对内容块中的实体内容进行删除的操作。可以理解为,对当前文档的文档编辑事件,包括对当前文档中至少一个内容块的实体内容进行编辑操作的事件、或者删除至少一个内容块的事件、或者新增至少一个内容块的事件、或者调整内容块之间关系的事件。内容块之间的关系可以包括归属关系,或者是内容块在文档中的位置,或各内容块在文档中的顺序等。74.其中,编辑操作标识,与文档编辑事件中的编辑操作是一一对应的,即执行一次编辑操作,生成对应的编辑操作标识。当然,为了便于对内容块的不同版本进行区分,在当前文档中的内容块执行文档编辑事件之后,对所对应的内容块节点的内容块版本标识进行更新。在实际操作过程中,在当前文档执行内容块删除操作的情况下,当前文档中内容块的数量相应减少,相应的,内容块节点与文档节点之间的父子关系也会随之发生变化。可以理解为,在编辑操作为内容块的内容更新操作或内容块新增操作时,根据文档编辑事件中的编辑操作,更新树结构中内容块节点的编辑操作标识和内容块版本标识;在编辑操作为内容块的删除操作时,根据文档编辑事件中的编辑操作,更新内容块节点与文档节点的父子关系。75.s260、根据编辑操作,对文档节点的编辑操作标识和文档版本标识进行更新。76.示例性地,在对当前文档中的内容块进行更新时,除了对内容块节点的编辑操作标识和内容块版本标识进行更新,也对文档节点的编辑操作标识和文档版本标识进行更新。示例性地,在文档节点的编辑操作标识和文档版本标识之间建立对应关系,以及在内容块节点的编辑操作标识和内容块版本标识之间建立对应关系,以便于后续统一对当前文档执行文档操作事件。77.本实施例的技术方案,在上述实施例的基础上,通过根据文档编辑事件中的编辑操作,更新树结构中内容块节点的编辑操作标识和内容块版本标识,或更新内容块节点与文档节点的父子关系;根据编辑操作,对文档节点的编辑操作标识和文档版本标识进行更新,实现了根据编辑操作对树结构中内容块节点和文档节点的更新。78.实施例三79.图4是本公开实施例三提供的一种基于树结构的文档处理方法的流程图。本实施例与上述实施例结合,在编辑操作包括内容块的内容更新操作的情况下,对根据文档编辑事件中的编辑操作,更新树结构中内容块节点的编辑操作标识和内容块版本标识作进一步的说明。如图4所示,本实施例中的方法包括如下步骤:80.s310、获取当前文档的文档操作事件。81.s320、根据文档操作事件,在当前文档的树结构中确定对应的文档节点和/或内容块节点。82.s330、根据文档节点的文档版本标识以及内容块节点的内容块版本标识之间的对应关系,执行文档操作事件。83.其中,文档包括至少一个内容块,树结构中包括文档节点和内容块节点,文档节点和内容块节点之间的父子关系表征文档和内容块之间的归属关系;文档节点记录有文档版本标识序列,内容块节点记录有内容块版本标识序列;文档版本标识用于表征归属于文档的内容块的更新。84.s340、获取对当前文档的文档编辑事件。85.s350、根据编辑操作确定对应的内容块。86.其中,在文档编辑事件中的编辑操作包括内容块的内容更新操作的情况下,对内容块中的内容更新操作,即对内容块中的实体内容进行修改的操作。在实际操作过程中,接收用户对当前文档的编辑操作,根据编辑操作所处的位置确定对应的内容块。示例性地,编辑操作所处的位置可以通过鼠标光标位置进行体现。87.在一实施例中,s350还可以具体包括:根据编辑操作确定对应的至少两个内容块。相应的,新的文档版本标识与新的内容块版本标识一一相对应;或一个新的文档版本标识与一个编辑操作导致添加的至少两个新的内容块版本标识相对应。在实施例中,在对当前文档执行内容块的内容更新操作时,存在该内容块的内容更新操作导致当前文档中的至少两个内容块发生变化,此时,可以将一个编辑操作导致添加的至少两个新的内容块版本标识均与一个新的文档版本标识对应,即至少两个新的内容块版本标识所对应的文档版本标识是相同的。当然,也可以每个新的内容块版本标识分别与一个新的文档版本标识相对应,即新的内容块版本标识与新的文档版本标识是一一对应的。示例性地,假设当前文档中的内容块a执行内容块的内容更新操作,且内容块a为一段文字,从该段文字的中间部分增加“回车键”,导致内容块a变换为两个内容块,记为内容块a1和内容块a2,即“回车键”的增加操作导致两个内容块发生变化,即相当于对内容块a1执行删除内容块a2所对应的实体内容,而内容块a2为新建的内容块。由于“回车键”的增加操作导致两个内容块发生变化,即对当前文档执行两次编辑操作,分别为内容块的删除操作和内容块的新增操作,此时,可分别对两次编辑操作添加一个新的文档版本标识,即内容块a1的删除操作对应一个文档版本标识,以及内容块a2的新增操作对应一个文档版本标识;也可以两次编辑操作添加一个新的文档版本标识,即内容块a1的删除操作和内容块a2的新增操作对应的文档版本标识是相同的。88.s360、向内容块的内容块节点的编辑操作标识序列中添加新的编辑操作标识。89.其中,内容块节点的编辑操作标识序列用于存储内容块节点的编辑操作标识。可以理解为,在内容块执行一次编辑操作时,在内容块节点的编辑操作标识序列中添加一个新的编辑操作标识。90.s370、向内容块节点的内容块版本标识序列中添加新的内容块版本标识。91.其中,内容块节点的内容块版本标识序列用于存储内容块节点的内容块版本标识。可以理解为,在内容块执行一次编辑操作时,在内容块节点的内容块版本标识序列中添加一个新的内容块版本标识。92.s380、向文档节点的编辑操作标识序列中添加新的编辑操作标识,并向文档节点的文档版本标识序列中添加新的文档版本标识,其中,新的文档版本标识与新的内容块版本标识相对应。93.在实施例中,文档节点的编辑操作标识序列用于存储文档节点的编辑操作标识。可以理解为,在当前文档中的内容块发生更新时,除了对当前文档中内容块节点的编辑操作标识和内容块版本标识进行更新,也对文档节点的编辑操作标识和文档版本标识进行更新,并在文档节点的文档版本标识与内容块节点的内容块版本标识之间建立对应关系,即新的文档版本标识与新的内容块版本标识相对应。94.可以理解为,在对当前文档执行内容块的内容更新操作时,即在内容块发生变化时,先对该内容块的编辑操作标识和内容块版本标识进行更新;然后根据内容块节点与文档节点之间的对应关系,查找到对应的文档节点,以更新该文档节点的文档版本标识,从而实现了在线协同执行当前文档的内容块更新操作。95.实施例四96.图5是本公开实施例四提供的一种基于树结构的文档处理方法的流程图。本实施例与上述实施例结合,在编辑操作包括内容块新增操作的情况下,对根据编辑操作,对文档节点的编辑操作标识和文档版本标识进行更新作进一步的说明。如图5所示,本实施例中的方法包括如下步骤:97.s410、获取当前文档的文档操作事件。98.s420、根据文档操作事件,在当前文档的树结构中确定对应的文档节点和/或内容块节点。99.s430、根据文档节点的文档版本标识以及内容块节点的内容块版本标识之间的对应关系,执行文档操作事件。100.其中,文档包括至少一个内容块,树结构中包括文档节点和内容块节点,文档节点和内容块节点之间的父子关系表征文档和内容块之间的归属关系;文档节点记录有文档版本标识序列,内容块节点记录有内容块版本标识序列;文档版本标识用于表征归属于文档的内容块的更新。101.s440、获取对当前文档的文档编辑事件。102.s450、根据编辑操作,在树结构中添加新的内容块节点,并在内容块节点中创建新的内容块版本标识,建立新的内容块版本标识与的新的文档版本标识的对应关系。103.其中,在文档编辑事件中的编辑操作包括内容块新增操作的情况下,对内容块新增操作,即对当前文档执行增加内容块的操作。在接收到用户对当前文档的内容块新增操作时,则树结构中添加新的内容块节点,并创建该内容块节点对应的内容块版本标识,以及该内容块版本标识对应的新的文档版本标识。104.s460、根据编辑操作确定对应的文档节点。105.需要说明的是,内容块所对应内容块节点与文档所对应文档节点之间建立有父子关系,以用于表征文档和内容块之间的归属关系。在实施例中,在接收到用户对当前文档中执行的内容块新增操作之后,在该当前文档中添加一个新的内容块,并根据新的内容块所对应内容块节点和文档节点之间的父子关系,查找到对应的文档节点。106.s470、向文档节点的编辑操作标识序列中添加新的编辑操作标识,并向文档节点的文档版本标识序列中添加新的文档版本标识。107.在实施例中,文档节点的编辑操作标识序列用于存储文档节点的编辑操作标识;文档节点的文档版本标识序列用于存储文档节点的文档版本标识。可以理解为,在执行内容块新增操作之后,当前文档的实体内容也发生变化,即相当于对当前文档执行编辑操作,则向文档节点添加新的编辑操作标识,以及对当前文档所对应的文档节点添加新的文档版本标识,从而实现了在线对当前文档执行内容块新增操作。108.实施例五109.图6是本公开实施例五提供的一种基于树结构的文档处理方法的流程图。本实施例与上述实施例结合,在编辑操作包括内容块删除操作的情况下,对根据编辑操作,对文档节点的编辑操作标识和文档版本标识进行更新作进一步的说明。如图6所示,本实施例中的方法包括如下步骤:110.s510、获取当前文档的文档操作事件。111.s520、根据文档操作事件,在当前文档的树结构中确定对应的文档节点和/或内容块节点。112.s530、根据文档节点的文档版本标识以及内容块节点的内容块版本标识之间的对应关系,执行文档操作事件。113.其中,文档包括至少一个内容块,树结构中包括文档节点和内容块节点,文档节点和内容块节点之间的父子关系表征文档和内容块之间的归属关系;文档节点记录有文档版本标识序列,内容块节点记录有内容块版本标识序列;文档版本标识用于表征归属于文档的内容块的更新。114.s540、获取对当前文档的文档编辑事件。115.s550、根据编辑操作确定对应的内容块。116.其中,文档编辑事件中的编辑操作包括内容块删除操作,即对当前文档中的某个内容块执行删除操作。在实际操作过程中,在检测到内容块的选中操作,则认为该选中的内容块为即将执行编辑操作的内容块。117.s560、删除内容块的内容块节点与文档节点之间的父子关系。118.在此需要说明的是,内容块所对应内容块节点与文档节点之间建立父子关系,以用于表征文档和内容块之间的归属关系。在实施例中,获取内容块所对应内容块节点的内容块版本标识,以及该内容块节点所对应的文档节点,然后删除该内容块的内容块节点与文档节点之间的父子关系,即删除内容块节点中记录的父节点标识,以及从文档节点的子节点标识中删除该内容块节点标识。119.s570、根据编辑操作,向文档节点的编辑操作标识序列中添加新的编辑操作标识,并向文档节点的文档版本标识序列中添加新的文档版本标识。120.在实施例中,文档节点的编辑操作标识序列用于存储文档节点的编辑操作标识;文档节点的文档版本标识序列用于存储文档节点的文档版本标识。可以理解为,在执行内容块删除操作之后,当前文档的实体内容也相应发生变化,即相当于对当前文档执行编辑操作,则文档节点的编辑操作标识和文档版本标识也需要进行更新,即在文档节点的编辑操作标识序列中添加一个新的编辑操作标识,以及在文档节点的文档版本标识序列中添加一个新的文档版本标识,从而实现了在线对当前文档执行内容块删除操作。121.实施例六122.图7是本公开实施例六提供的一种基于树结构的文档处理方法的流程图。本实施例与上述实施例结合,在文档操作事件为版本变更事件的情况下,对s120和s130作进一步的说明。123.如图7所示,本实施例中的方法包括如下步骤:124.s610、获取当前文档的文档操作事件。125.其中,文档操作事件包括版本变更事件。在实施例中,可以通过文档中的显示按钮,也可以通过键盘热键,触发当前文档的版本变更事件。可以理解为,在检测到版本变更事件所对应的显示按钮,或者键盘热键被触发时,表明启动当前文档的版本变更事件。126.s620、根据版本变更事件,在当前文档的树结构中确定对应的文档节点,以及版本变更事件所指向的文档版本标识。127.其中,版本变更事件中的版本回退事件指的是将当前文档的当前版本回滚到旧版本的事件。或者,版本变更事件中的版本恢复事件,是指从文档的旧版本恢复至新版本的事件。当然,当前文档的旧版本可以包括一个或多个版本。可以理解为,为了能够准确地将当前文档回滚到对应的旧版本,通过版本回退事件指示所要回滚到旧版本所对应的文档版本标识。需要说明的是,版本回退事件是对文档执行的操作事件,即在获取到版本回退事件时,在当前文档的树结构中获取当前文档所对应的文档节点,以及版本回退事件所指示的文档版本标识。128.s630、根据文档版本标识,基于树结构的版本标识快照,查找对应的每个内容块节点的内容块版本标识。129.其中,版本标识快照,指的是文档节点的文档版本标识序列中当前最新的文档版本标识与文档中所包含的每个内容块所对应内容块节点当前最新的内容块版本标识之间建立对应关系。示例性地,假设文档节点1所对应的文档中包含3个内容块,分别为内容块b1、内容块b2和内容块b3。其中,文档节点1的文档版本标识序列中包含8个文档版本标识,分别为0、1、2、3、4、5、6和7(即文档版本标识7表示最新的文档版本标识),内容块b1所对应内容块节点的内容块版本标识序列中包含两个内容块版本标识,分别为0和1(即内容块b1最新的内容块版本标识为1);内容块b2所对应内容块节点的内容块版本标识序列中包含三个内容块版本标识,分别为0、1和2(即内容块b2最新的内容块版本标识为2);内容块b3所对应内容块节点的内容块版本标识序列中包含四个内容块版本标识,分别为0、1、2和3(内容块b3最新的内容块版本标识为3),则文档节点1的文档版本标识7分别与内容块b1最新的内容块版本标识1、内容块b2最新的内容块版本标识2以及内容块b3最新的内容块版本标识3之间建立对应关系,并将这种对应关系作为版本标识快照。130.需要说明的是,文档节点与所包含的每个内容块的内容块节点之间建立父子关系,即根据文档节点的文档版本标识和预先创建的版本标识快照,查找到该文档版本标识对应的每个内容块节点的内容块版本标识。131.s640、根据每个内容块节点的内容块版本标识,确定各内容块节点的待变更内容。132.其中,每个内容块节点的内容块版本标识,用于表征该内容块节点所对应内容块的实体内容,即内容块节点的不同内容块版本标识所对应的内容块的实体内容是不同的。在实施例中,在确定每个内容块节点的内容块版本标识之后,通过内容块版本标识即可得到该内容块节点所对应内容块的实体内容,从而可得到该内容块节点所需要回退的实体内容,即需要回退到所述内容块版本标识对应的实体内容。133.s650、根据各内容块节点的待变更内容,执行文档变更事件。134.在实施例中,以版本回退事件为例,按照每个内容块节点的待回退内容,对每个内容块节点所对应内容块的实体内容进行回退,以回滚到内容块版本标识所对应的实体内容,从而根据文档版本标识和内容块版本标识之间的对应关系,实现了对每个内容块节点所对应内容块的实体内容进行统一回退的操作,提升了用户的使用体验和操作便捷性。135.s660、根据文档变更事件的待变更内容,向文档节点中添加新的编辑操作标识、内容块版本标识和文档版本标识;且向各内容块中添加新的编辑操作标识和内容块版本标识。136.在实施例中,以文档回退事件为例,对当前文档执行文档回退事件之后,在文档节点的编辑操作序列中添加新的编辑操作标识,表征对当前文档所执行的编辑操作;以及在文档节点的内容块版本标识序列中添加一个新的内容块版本标识,表征当前文档中的内容块版本发生变化;以及在文档节点的文档版本标识序列中添加一个新的文档版本标识,表征当前文档的实体内容发生变化。当然,在每个内容块节点所对应内容块的实体内容撤销待回退内容,即对每个内容块执行编辑操作,则相应的,每个内容块的编辑操作标识和内容块版本标识也发生更新,即在每个内容块节点的编辑操作标识序列中添加新的编辑操作标识,以及内容块版本标识序列中添加新的内容块版本标识。137.实施例七138.图8是本公开实施例七提供的一种基于树结构的文档处理方法的流程图。本实施例与上述实施例结合,在文档操作事件为内容块更新内容推送事件的情况下,对s120和s130作进一步的说明。如图8所示,本实施例中的方法包括如下步骤:139.s710、获取当前文档的文档操作事件。140.s720、根据内容块更新内容推送事件,在树结构中确定对应的内容块节点,以及内容块节点所归属的文档节点的最新文档版本标识。141.其中,内容块更新内容推送事件,指的是服务端将内容块的更新内容推送至客户端的事件。在实施例中,在内容块中的实体内容发生更新时,在树结构中确定实体内容发生更新的内容块节点,以及该内容块节点所归属的文档节点的最新文档版本标识。需要说明的是,内容块节点与文档节点之间建立父子关系,用于表征内容块与文档之间的归属关系。可以理解为,内容块节点所归属的文档节点,即该内容块节点的父节点为文档节点。142.s730、基于树结构的版本标识快照,确定最新文档版本标识所对应的已更新内容块版本标识。143.在实施例中,s730具体包括s7301-s7302:144.s7301、基于树结构的版本标识快照,确定最新文档版本标识所对应的编辑操作版本标识。145.在实施例中,对当前文档执行内容块更新内容推送事件的过程,指的是对当前文档中内容块的实体内容进行更新的过程。相应的,当前文档所对应文档节点的编辑操作版本标识发生更新,即在最新文档版本标识和编辑操作版本标识之间建立对应关系。可以理解为,根据最新文档版本标识和编辑操作版本标识之间的对应关系,查找到最新文档版本标识对应的编辑操作版本标识。146.s7302、根据编辑操作版本标识,查找对应的内容块版本标识,作为已更新内容块版本标识。147.需要说明的是,编辑操作版本标识和内容块版本标识之间建立一一对应关系。在确定编辑操作版本标识之后,根据两者之间的对应关系查找对应的内容块版本标识,作为已更新内容块版本标识。148.s740、根据已更新内容块版本标识,执行内容块更新内容推送事件。149.在实施例中,将已更新内容块版本标识所对应内容块的实体内容推送至客户端,以使客户端按照以更新内容块版本标识所对应内容块的实体内容对当前文档进行更新。150.实施例八151.图9是本公开实施例八提供的一种基于树结构的文档处理方法的流程图。本实施例与上述实施例结合,在文档操作事件为文档读取事件的情况下,对s120和s130作进一步的说明。如图8所示,本实施例中的方法包括如下步骤:152.s810、获取当前文档的文档操作事件。该文档操作事件为文档读取事件。153.文档读取事件可以为客户端打开文档时进行初始化读取的事件。此时,客户端可以向服务端发起文档读取请求,以告知需要读取哪个文档。154.s820、根据文档读取事件,在树结构中确定对应的文档节点和内容块节点,以及所述文档节点和内容块节点的待推送版本标识。155.当服务端获取到文档读取事件时,可根据文档读取事件确定待读取的文档标识。进而,基于文档标识从该文档的存储空间中拉取该文档的树结构。拉取到树结构之后,可确定文档节点的tv以及归属于该文档节点的内容块节点,还能确定内容块节点的rv。文档节点的最新tv和各内容块节点的最新rv就是待推送版本标识。其中,文档节点的根内容块也可以作为一个特殊的内容块,确定其最新的rv作为待推送版本标识。156.s830、根据确定的所述内容块节点,拉取各所述内容块节点对应的最新内容块版本标识及其实体内容;157.当确定每个内容块的待推送版本标识之后,需要再一次从服务端的存储空间中,将各个内容块的实体内容拉取获得。此时,可以根据内容块的节点标识进行拉取。在存储空间中,存储有每个版本标识相对于前一版本标识的增量更新内容,也存储有最新版本标识所对应的全量内容。基于内容块节点标识拉取实体内容时,一般拉取得到的是最新内容块节点版本标识及对应全量内容。158.s840、基于树结构的版本标识快照,确定拉取的内容块节点的最新内容块版本标识,与所述待推送版本标识的一致性。159.通常来说,第一次拉取树结构所获得的版本标识,与第二次拉取实体内容时的版本标识是一致的。但是由于两次拉取内容有一定时间差,所以也有一定概率会出现,内容块在这个时间差内被再次更新,由此某些内容块产生了新的rv,文档节点也差生了新的tv。则此时,第二次拉取到的最新内容块版本标识与待推送版本标识可能会出现不一致的情况。160.举例来说,确定待推送版本标识为:tv=10,内容块a的rv=3,内容块b的rv=2,内容块c的rv=5。在拉取内容块实体内容的过程中发生了更新,内容块a的rv=3,内容块b的rv=3,内容块c的rv=5,新增内容块d的rv=0,且此时文档的tv=12。由此,拉取实体内容的最新版本标识与待推送版本标识不一致。当tv与每个内容块节点的每个rv一一对应时,tv的数值为所有最新rv的数值之和,因此,比对版本标识的一致性,可以转换为比对待推送的文档版本标识与拉取实体内容的最新文档版本标识是否相等。若相等,则拉取实体内容的版本标识一致,否则为不一致。当然,也可以通过逐一对比各个内容块节点rv的方式来检验一致性。161.s850、如果满足一致性要求,则将拉取的所述内容块节点的实体内容提供给所述客户端。162.s860、如果不满足一致性要求,则重新执行在所述树结构中确定对应的文档节点和内容块节点,以及所述文档节点和内容块节点的待推送版本标识的操作。163.在两次拉取过程中发生更新的概率并不高,因此可通过重新确定待推送版本来纠正错误。164.在实施例中,在待推送版本标识未对应于最新版本标识时,表明服务端向客户端推送的当前文档的内容并非完整文档内容,此时,可对最新文档版本标识和待推送内容块版本标识之间的对应关系进行调整,即重新确定最新文档版本标识对应的至少一个内容块的内容块版本标识,作为待推送内容块版本标识,并将重新确定的待推送内容块版本标识对应的更新内容向客户端推送。165.实施例九166.图10是本公开实施例九提供的一种文档树结构的示意图。如图10所示,创建一个文档r1,在文档r1中包括:内容块c、文档r0、内容块a和内容块b。其中,内容块c引用了文档r0,文档r0引用了内容块a和内容块b。示例性地,在用户执行t6操作时,创建了内容块c,产生了内容块c的rv版本0,由于内容块c的变化,使得文档r1的tv产生新版本1。同时,t6操作也导致了文档r1的内容发生变化,因此文档r1的rv产生了新的版本1,由于文档r1的内容变化,文档r1的tv再次产生新版本,从而文档r1的tv产生新版本2。即,一次事务操作t6,产生了两个tv版本。当用户执行t7操作时,导致内容块c的版本发生变化,即内容块c的rv产生了新的版本1。167.需要说明的是,一次文档操作事件,可带动一个或多个内容块发生变化,相应产生rv的变化。而每个内容块的变化都会导致一次tv变化。因此,每个tv是与每种树结构中的文档节点是一一对应的。或者,由于文档操作为原子性的,即文档中的tv也可以与每个tid进行一一对应。168.实施例十169.图11是本公开实施例使提供的一种基于树结构的文档处理装置的结构框图。如图11所示,本实施例中的基于树结构的文档处理装置包括:第一获取模块910、第一确定模块920和执行模块930。170.其中,第一获取模块910,用于获取当前文档的文档操作事件;171.第一确定模块920,用于根据文档操作事件,在当前文档的树结构中确定对应的文档节点和/或内容块节点;172.执行模块930,用于根据文档节点的文档版本标识以及内容块节点的内容块版本标识之间的对应关系,执行文档操作事件;173.其中,文档包括至少一个内容块,树结构中包括文档节点和内容块节点,文档节点和内容块节点之间的父子关系表征文档和内容块之间的归属关系;文档节点记录有文档版本标识序列,内容块节点记录有内容块版本标识序列;文档版本标识用于表征归属于文档的内容块的更新。174.在上述实施例的基础上,归属于文档的内容块中包括一个根内容块,文档节点还记录有根内容块的内容块版本标识序列。175.在上述实施例的基础上,文档节点和内容块节点还记录有编辑操作标识序列,编辑操作标识用于表征更新内容块的编辑操作。176.在上述实施例的基础上,基于树结构的文档处理装置,还包括:177.第二获取模块,用于获取对当前文档的文档编辑事件。178.第一更新模块,用于根据文档编辑事件中的编辑操作,更新树结构中内容块节点的编辑操作标识和内容块版本标识,或更新内容块节点与文档节点的父子关系;179.第二更新模块,用于根据编辑操作,对文档节点的编辑操作标识和文档版本标识进行更新。180.在上述实施例的基础上,如果编辑操作包括内容块的内容更新操作,则第一更新模块包括:181.第一确定单元,用于根据编辑操作确定对应的内容块;182.第一添加单元,用于向内容块的内容块节点的编辑操作标识序列中添加新的编辑操作标识;183.第二添加单元,用于向内容块节点的内容块版本标识序列中添加新的内容块版本标识。184.相应的,第二更新模块,具体用于:向文档节点的编辑操作标识序列中添加新的编辑操作标识,并向文档节点的文档版本标识序列中添加新的文档版本标识,其中,新的文档版本标识与新的内容块版本标识相对应。185.在上述实施例的基础上,第一确定单元,具体用于:根据编辑操作确定对应的至少两个内容块;186.相应的,新的文档版本标识与新的内容块版本标识一一相对应;或一个新的文档版本标识与一个编辑操作导致添加的至少两个新的内容块版本标识相对应。187.在上述实施例的基础上,如果编辑操作包括内容块新增操作,则第二更新模块包括:188.第二确定单元,用于根据编辑操作确定对应的文档节点;189.第三添加单元,用于向文档节点的编辑操作标识序列中添加新的编辑操作标识,并向文档节点的文档版本标识序列中添加新的文档版本标识;190.相应的,第一更新模块,具体用于:根据编辑操作,在树结构中添加新的内容块节点,并在内容块节点中创建新的内容块版本标识,建立新的内容块版本标识与的新的文档版本标识的对应关系。191.在上述实施例的基础上,如果编辑操作包括内容块删除操作,则第一更新模块,包括:192.第三确定单元,用于根据编辑操作确定对应的内容块;193.删除单元,用于删除内容块的内容块节点与文档节点之间的父子关系;194.相应的,第二更新模块,具体用于:根据编辑操作,向文档节点的编辑操作标识序列中添加新的编辑操作标识,并向文档节点的文档版本标识序列中添加新的文档版本标识。195.在上述实施例的基础上,如果文档操作事件为版本变更事件,则第一确定模块,具体用于:根据版本变更事件,在当前文档的树结构中确定对应的文档节点,以及版本变更事件所指向的文档版本标识;196.相应的,执行模块,包括:197.查找单元,用于根据文档版本标识,基于树结构的版本标识快照,查找对应的每个内容块节点的内容块版本标识;198.第四确定单元,用于根据每个内容块节点的内容块版本标识,确定各内容块节点的待变更内容;199.第一执行单元,用于根据各内容块节点的待变更内容,执行文档变更事件。200.在上述实施例的基础上,执行模块,还包括:201.第四添加单元,用于根据各内容块节点的待变更内容,执行文档变更事件之后,根据文档变更事件的待变更内容,向文档节点中添加新的编辑操作标识、内容块版本标识和文档版本标识;且向各内容块中添加新的编辑操作标识和内容块版本标识。202.在上述实施例的基础上,如果文档操作事件为内容块更新内容推送事件,则第一确定模块,具体用于:根据内容块更新内容推送事件,在树结构中确定对应的内容块节点,以及内容块节点所归属的文档节点的最新文档版本标识;203.相应的,执行模块,包括:204.第五确定单元,用于基于树结构的版本标识快照,确定最新文档版本标识所对应的已更新内容块版本标识;205.第二执行单元,用于根据已更新内容块版本标识,执行内容块更新内容推送事件。206.在上述实施例的基础上,第五确定单元,包括:207.第一确定子单元,用于基于树结构的版本标识快照,确定最新文档版本标识所对应的编辑操作版本标识;208.查找子单元,用于根据编辑操作版本标识,查找对应的内容块版本标识,作为已更新内容块版本标识。209.在上述实施例的基础上,如果文档操作事件为文档读取事件,则第一确定模块,具体用于:根据所述文档读取事件,在所述树结构中确定对应的文档节点和内容块节点,以及所述文档节点和内容块节点的待推送版本标识;210.相应的,执行模块,包括:211.拉取单元,用于根据确定的所述内容块节点,拉取各所述内容块节点对应的最新内容块版本标识及其实体内容;212.第六确定单元,用于基于树结构的版本标识快照,确定拉取的所述内容块节点的最新内容块版本标识,与所述待推送版本标识的一致性;213.第三执行单元,用于如果满足一致性要求,则将拉取的所述内容块节点的实体内容提供给所述客户端。214.在上述实施例的基础上,所述执行模块还包括:215.第四执行单元,用于如果不满足一致性要求,重新执行在所述树结构中确定对应的文档节点和内容块节点,以及所述文档节点和内容块节点的待推送版本标识的操作。216.实施例十一217.图12是本公开实施例使提供的一种基于树结构的文档处理设备的结构框图。下面参考图12,其示出了适于用来实现本公开实施例的电子设备(例如图1中的终端设备或服务器)1000的结构示意图。本公开实施例中的终端设备可以包括但不限于诸如移动电话、笔记本电脑、数字广播接收器、pda(个人数字助理)、pad(平板电脑)、pmp(便携式多媒体播放器)、车载终端(例如车载导航终端)等等的移动终端以及诸如数字tv、台式计算机等等的固定终端。图12示出的电子设备仅仅是一个示例,不应对本公开实施例的功能和使用范围带来任何限制。218.如图12所示,电子设备1000可以包括处理装置(例如中央处理器、图形处理器等)1001,其可以根据存储在只读存储器(rom)1002中的程序或者从存储装置1006加载到随机访问存储器(ram)1003中的程序而执行各种适当的动作和处理。在ram 1003中,还存储有电子设备1000操作所需的各种程序和数据。处理装置1001、rom 1002以及ram 1003通过总线1004彼此相连。输入/输出(i/o)接口1005也连接至总线1004。219.通常,以下装置可以连接至i/o接口1005:包括例如触摸屏、触摸板、键盘、鼠标、摄像头、麦克风、加速度计、陀螺仪等的输入装置1006;包括例如液晶显示器(lcd)、扬声器、振动器等的输出装置1007;包括例如磁带、硬盘等的存储装置1006;以及通信装置1009。通信装置1009可以允许电子设备1000与其他设备进行无线或有线通信以交换数据。虽然图12示出了具有各种装置的电子设备1000,但是应理解的是,并不要求实施或具备所有示出的装置。可以替代地实施或具备更多或更少的装置。220.特别地,根据本公开的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本公开的实施例包括一种计算机程序产品,其包括承载在非暂态计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信装置1009从网络上被下载和安装,或者从存储装置1006被安装,或者从rom 1002被安装。在该计算机程序被处理装置1001执行时,执行本公开实施例的方法中限定的上述功能。221.需要说明的是,本公开上述的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(ram)、只读存储器(rom)、可擦式可编程只读存储器(eprom或闪存)、光纤、便携式紧凑磁盘只读存储器(cd-rom)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本公开中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本公开中,计算机可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读信号介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:电线、光缆、rf(射频)等等,或者上述的任意合适的组合。222.在一些实施方式中,客户端、服务器可以利用诸如http(hypertext transfer protocol,超文本传输协议)之类的任何当前已知或未来研发的网络协议进行通信,并且可以与任意形式或介质的数字数据通信(例如,通信网络)互连。通信网络的示例包括局域网(“lan”),广域网(“wan”),网际网(例如,互联网)以及端对端网络(例如,ad hoc端对端网络),以及任何当前已知或未来研发的网络。223.上述计算机可读介质可以是上述电子设备中所包含的;也可以是单独存在,而未装配入该电子设备中。224.上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被该电子设备执行时,使得该电子设备:获取当前文档的文档操作事件;根据文档操作事件,在当前文档的树结构中确定对应的文档节点和/或内容块节点;根据文档节点的文档版本标识以及内容块节点的内容块版本标识之间的对应关系,执行所述文档操作事件;225.其中,文档包括至少一个内容块,树结构中包括文档节点和内容块节点,文档节点和内容块节点之间的父子关系表征文档和内容块之间的归属关系;文档节点记录有文档版本标识序列,内容块节点记录有内容块版本标识序列;文档版本标识用于表征归属于文档的内容块的更新。226.可以以一种或多种程序设计语言或其组合来编写用于执行本公开的操作的计算机程序代码,上述程序设计语言包括但不限于面向对象的程序设计语言—诸如java、smalltalk、c++,还包括常规的过程式程序设计语言—诸如“c”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络——包括局域网(lan)或广域网(wan)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。227.附图中的流程图和框图,图示了按照本公开各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,该模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。228.描述于本公开实施例中所涉及到的单元可以通过软件的方式实现,也可以通过硬件的方式来实现。其中,单元的名称在某种情况下并不构成对该单元本身的限定,例如,第一获取单元还可以被描述为“获取至少两个网际协议地址的单元”。229.本文中以上描述的功能可以至少部分地由一个或多个硬件逻辑部件来执行。例如,非限制性地,可以使用的示范类型的硬件逻辑部件包括:现场可编程门阵列(fpga)、专用集成电路(asic)、专用标准产品(assp)、片上系统(soc)、复杂可编程逻辑设备(cpld)等等。230.在本公开的上下文中,机器可读介质可以是有形的介质,其可以包含或存储以供指令执行系统、装置或设备使用或与指令执行系统、装置或设备结合地使用的程序。机器可读介质可以是机器可读信号介质或机器可读储存介质。机器可读介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体系统、装置或设备,或者上述内容的任何合适组合。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(ram)、只读存储器(rom)、可擦除可编程只读存储器(eprom或快闪存储器)、光纤、便捷式紧凑盘只读存储器(cd-rom)、光学储存设备、磁储存设备、或上述内容的任何合适组合。231.基于树结构的文档处理方法可以由服务端操作树结构来维护文档内容,可选的是,对于文档处理客户端,也可以预加载树结构,在客户端本地进行处理,而后通知服务端进行更新。在客户端中,可以按照需求配置内容管理模块、流管理模块和流同步模块等,分别执行不同的功能,以完成客户端中基于树结构的文档处理过程。具体的,文档处理客户端所执行的文档处理方法包括:232.内容管理模块获取用户对当前编辑文档的文档内容编辑事件;其中,所述文档内容编辑事件包括编辑操作和编辑内容;233.内容管理模块根据所述编辑操作和编辑内容,在本地缓存的所述当前编辑文档的树结构中确定对应的节点,并确定节点对应的更新内容;234.内容管理模块根据所述编辑操作和更新内容,确定在树结构的节点中增加的操作标识和内容版本标识;235.内容管理模块产生文档更新事件,并提供给所述文档处理客户端中的流管理模块;其中,所述文档更新事件中包括所述更新内容、所述增加的操作标识和内容版本标识;236.流管理模块将所述文档更新事件缓存在本地队列中;237.流同步模块,将所述流管理模块提供的所述更新内容、所述增加的操作标识和内容版本标识发送至服务端,以请求更新所述服务端中存储的树结构和文档内容;238.流同步模块接收所述服务端传输的更新通知,并传输给所述文档处理客户端中的流管理模块;239.流管理模块根据所述服务端传输的更新通知,对本地缓存的所述文档更新事件进行冲突处理;240.如果不存在冲突,则所述流管理模块通知所述内容管理模块,根据所述文档更新事件对当前编辑文档的文档内容和树结构进行更新,并删除缓存的文档更新事件。241.上述方案中,所述流管理模块根据所述服务端传输的更新通知,对本地缓存的所述文档更新事件进行冲突处理可以包括:242.如果所述流管理模块识别所述服务端传输的更新通知为根据本地文档更新事件的反馈通知,则确定不存在冲突;243.如果所述流管理模块识别所述服务端传输的更新通知为其他客户端的文档更新事件产生的,则将所述更新通知中的文档更新事件,与本地缓存的文档更新事件进行冲突匹配,以确定是否存在冲突。244.根据本公开的一个或多个实施例,提供了一种基于树结构的文档处理方法、装置、设备和介质,包括:245.获取当前文档的文档操作事件;246.根据所述文档操作事件,在所述当前文档的树结构中确定对应的文档节点和/或内容块节点;247.根据文档节点的文档版本标识以及内容块节点的内容块版本标识之间的对应关系,执行所述文档操作事件;248.其中,所述文档包括至少一个内容块,所述树结构中包括文档节点和内容块节点,所述文档节点和内容块节点之间的父子关系表征文档和内容块之间的归属关系;所述文档节点记录有文档版本标识序列,所述内容块节点记录有内容块版本标识序列;所述文档版本标识用于表征归属于所述文档的内容块的更新。249.根据本公开的一个或多个实施例,提供了一种基于树结构的文档处理方法、装置、设备和介质,归属于所述文档的内容块中包括一个根内容块,所述文档节点还记录有根内容块的内容块版本标识序列。250.根据本公开的一个或多个实施例,提供了一种基于树结构的文档处理方法、装置、设备和介质,所述文档节点和所述内容块节点还记录有编辑操作标识序列,所述编辑操作标识用于表征更新内容块的编辑操作。251.根据本公开的一个或多个实施例,提供了一种基于树结构的文档处理方法、装置、设备和介质,还包括:252.获取对所述当前文档的文档编辑事件;253.根据所述文档编辑事件中的编辑操作,更新所述树结构中内容块节点的编辑操作标识和内容块版本标识,或更新所述内容块节点与文档节点的父子关系;254.根据所述编辑操作,对所述文档节点的编辑操作标识和文档版本标识进行更新。255.根据本公开的一个或多个实施例,提供了一种基于树结构的文档处理方法、装置、设备和介质,如果所述编辑操作包括内容块的内容更新操作,则根据所述文档编辑事件中的编辑操作,更新所述树结构中内容块节点的编辑操作标识和内容块版本标识包括:256.根据所述编辑操作确定对应的内容块;257.向所述内容块的内容块节点的编辑操作标识序列中添加新的编辑操作标识;258.向所述内容块节点的内容块版本标识序列中添加新的内容块版本标识;259.相应的,根据所述编辑操作,对所述文档节点的编辑操作标识和文档版本标识进行更新包括:260.向所述文档节点的编辑操作标识序列中添加新的编辑操作标识,并向所述文档节点的文档版本标识序列中添加新的文档版本标识,其中,新的文档版本标识与新的内容块版本标识相对应。261.根据本公开的一个或多个实施例,提供了一种基于树结构的文档处理方法、装置、设备和介质,根据所述编辑操作确定对应的内容块包括:262.根据所述编辑操作确定对应的至少两个内容块;263.相应的,新的文档版本标识与新的内容块版本标识一一相对应;或一个新的文档版本标识与一个编辑操作导致添加的至少两个新的内容块版本标识相对应。264.根据本公开的一个或多个实施例,提供了一种基于树结构的文档处理方法、装置、设备和介质,如果所述编辑操作包括内容块新增操作,则根据所述编辑操作,对所述文档节点的编辑操作标识和文档版本标识进行更新包括:265.根据所述编辑操作确定对应的文档节点;266.向所述文档节点的编辑操作标识序列中添加新的编辑操作标识,并向所述文档节点的文档版本标识序列中添加新的文档版本标识;267.相应的,根据所述文档编辑事件中的编辑操作,更新所述树结构中内容块节点的编辑操作标识和内容块版本标识包括:268.根据所述编辑操作,在所述树结构中添加新的内容块节点,并在所述内容块节点中创建新的内容块版本标识,建立新的内容块版本标识与所述的新的文档版本标识的对应关系。269.根据本公开的一个或多个实施例,提供了一种基于树结构的文档处理方法、装置、设备和介质,如果所述编辑操作包括内容块删除操作,则根据所述编辑操作,更新所述内容块节点与文档节点的父子关系包括:270.根据所述编辑操作确定对应的内容块;271.删除所述内容块的内容块节点与文档节点之间的父子关系;272.相应的,根据所述编辑操作,对所述文档节点的编辑操作标识和文档版本标识进行更新包括:273.根据所述编辑操作,向所述文档节点的编辑操作标识序列中添加新的编辑操作标识,并向所述文档节点的文档版本标识序列中添加新的文档版本标识。274.根据本公开的一个或多个实施例,提供了一种基于树结构的文档处理方法、装置、设备和介质,如果所述文档操作事件为版本变更事件,则根据所述文档操作事件,在所述当前文档的树结构中确定对应的文档节点包括:275.根据所述版本变更事件,在所述当前文档的树结构中确定对应的文档节点,以及所述版本变更事件所指向的文档版本标识;276.相应的,根据文档节点的文档版本标识以及内容块节点的内容块版本标识之间的对应关系,执行所述文档操作事件包括:277.根据所述文档版本标识,基于树结构的版本标识快照,查找对应的每个内容块节点的内容块版本标识;278.根据每个内容块节点的内容块版本标识,确定各内容块节点的待变更内容;279.根据各内容块节点的待变更内容,执行所述文档变更事件。280.根据本公开的一个或多个实施例,提供了一种基于树结构的文档处理方法、装置、设备和介质,根据各内容块节点的待变更内容,执行所述文档变更事件之后,还包括:281.根据所述文档变更事件的待变更内容,向所述文档节点中添加新的编辑操作标识、内容块版本标识和文档版本标识;且向各所述内容块中添加新的编辑操作标识和内容块版本标识。282.根据本公开的一个或多个实施例,提供了一种基于树结构的文档处理方法、装置、设备和介质,如果所述文档操作事件为内容块更新内容推送事件,则根据所述文档操作事件,在所述当前文档的树结构中确定对应的内容块节点包括:283.根据所述内容块更新内容推送事件,在所述树结构中确定对应的内容块节点,以及所述内容块节点所归属的文档节点的最新文档版本标识;284.相应的,根据文档节点的文本版本标识以及内容块节点的内容块版本标识之间的对应关系,执行所述文档操作事件包括:285.基于所述树结构的版本标识快照,确定所述最新文档版本标识所对应的已更新内容块版本标识;286.根据所述已更新内容块版本标识,执行所述内容块更新内容推送事件。287.根据本公开的一个或多个实施例,提供了一种基于树结构的文档处理方法、装置、设备和介质,基于所述树结构的版本标识快照,确定所述最新文档版本标识所对应的已更新内容块版本标识包括:288.基于所述树结构的版本标识快照,确定所述最新文档版本标识所对应的编辑操作版本标识;289.根据所述编辑操作版本标识,查找对应的内容块版本标识,作为已更新内容块版本标识。290.根据本公开的一个或多个实施例,提供了一种基于树结构的文档处理方法、装置、设备和介质,如果所述文档操作事件为文档读取事件,则根据所述文档操作事件,在所述当前文档的树结构中确定对应的内容块节点包括:291.根据所述文档读取事件,在所述树结构中确定对应的文档节点和内容块节点,以及所述文档节点和内容块节点的待推送版本标识;292.相应的,根据文档节点的文档版本标识以及内容块节点的内容块版本标识之间的对应关系,执行所述文档操作事件包括:293.根据确定的所述内容块节点,拉取各所述内容块节点对应的最新内容块版本标识及其实体内容;294.基于所述树结构的版本标识快照,确定拉取的所述内容块节点的最新内容块版本标识,与所述待推送版本标识的一致性;295.如果满足一致性要求,则将拉取的所述内容块节点的实体内容提供给所述客户端。296.根据本公开的一个或多个实施例,提供了一种基于树结构的文档处理方法、装置、设备和介质,还包括:如果不满足一致性要求,重新执行在所述树结构中确定对应的文档节点和内容块节点,以及所述文档节点和内容块节点的待推送版本标识的操作。297.以上描述仅为本公开的较佳实施例以及对所运用技术原理的说明。本领域技术人员应当理解,本公开中所涉及的公开范围,并不限于上述技术特征的特定组合而成的技术方案,同时也应涵盖在不脱离上述公开构思的情况下,由上述技术特征或其等同特征进行任意组合而形成的其它技术方案。例如上述特征与本公开中公开的(但不限于)具有类似功能的技术特征进行互相替换而形成的技术方案。298.此外,虽然采用特定次序描绘了各操作,但是这不应当理解为要求这些操作以所示出的特定次序或以顺序次序执行来执行。在一定环境下,多任务和并行处理可能是有利的。同样地,虽然在上面论述中包含了若干具体实现细节,但是这些不应当被解释为对本公开的范围的限制。在单独的实施例的上下文中描述的某些特征还可以组合地实现在单个实施例中。相反地,在单个实施例的上下文中描述的各种特征也可以单独地或以任何合适的子组合的方式实现在多个实施例中。299.尽管已经采用特定于结构特征和/或方法逻辑动作的语言描述了本主题,但是应当理解所附权利要求书中所限定的主题未必局限于上面描述的特定特征或动作。相反,上面所描述的特定特征和动作仅仅是实现权利要求书的示例形式。









图片声明:本站部分配图来自人工智能系统AI生成,觅知网授权图片,PxHere摄影无版权图库。本站只作为美观性配图使用,无任何非法侵犯第三方意图,一切解释权归图片著作权方,本站不承担任何责任。如有恶意碰瓷者,必当奉陪到底严惩不贷!




内容声明:本文中引用的各种信息及资料(包括但不限于文字、数据、图表及超链接等)均来源于该信息及资料的相关主体(包括但不限于公司、媒体、协会等机构)的官方网站或公开发表的信息。部分内容参考包括:(百度百科,百度知道,头条百科,中国民法典,刑法,牛津词典,新华词典,汉语词典,国家院校,科普平台)等数据,内容仅供参考使用,不准确地方联系删除处理!本站为非盈利性质站点,发布内容不收取任何费用也不接任何广告!




免责声明:我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理,本文部分文字与图片资源来自于网络,部分文章是来自自研大数据AI进行生成,内容摘自(百度百科,百度知道,头条百科,中国民法典,刑法,牛津词典,新华词典,汉语词典,国家院校,科普平台)等数据,内容仅供学习参考,不准确地方联系删除处理!的,若有来源标注错误或侵犯了您的合法权益,请立即通知我们,情况属实,我们会第一时间予以删除,并同时向您表示歉意,谢谢!

相关内容 查看全部