[go: up one dir, main page]

CN107315646B - 页面组件间的数据流向控制方法和装置 - Google Patents

页面组件间的数据流向控制方法和装置 Download PDF

Info

Publication number
CN107315646B
CN107315646B CN201610270495.9A CN201610270495A CN107315646B CN 107315646 B CN107315646 B CN 107315646B CN 201610270495 A CN201610270495 A CN 201610270495A CN 107315646 B CN107315646 B CN 107315646B
Authority
CN
China
Prior art keywords
component
page
data
components
level
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201610270495.9A
Other languages
English (en)
Other versions
CN107315646A (zh
Inventor
曾瑞文
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Jingdong Century Trading Co Ltd
Beijing Jingdong Shangke Information Technology Co Ltd
Original Assignee
Beijing Jingdong Century Trading Co Ltd
Beijing Jingdong Shangke Information Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Beijing Jingdong Century Trading Co Ltd, Beijing Jingdong Shangke Information Technology Co Ltd filed Critical Beijing Jingdong Century Trading Co Ltd
Priority to CN201610270495.9A priority Critical patent/CN107315646B/zh
Publication of CN107315646A publication Critical patent/CN107315646A/zh
Application granted granted Critical
Publication of CN107315646B publication Critical patent/CN107315646B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/543User-generated data transfer, e.g. clipboards, dynamic data exchange [DDE], object linking and embedding [OLE]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/546Message passing systems or structures, e.g. queues

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Transfer Between Computers (AREA)
  • Document Processing Apparatus (AREA)

Abstract

本申请公开了一种页面组件间的数据流向控制方法和装置。所述方法的一具体实施方式包括:对页面文档的结构进行解析,获取页面组件间的嵌套层次关系,其中,所述页面组件包括数据元素和回调函数,所述嵌套层次关系中,下级组件嵌套于上级组件;根据所述嵌套层次关系,按照从上级组件到下级组件的顺序对各页面组件进行渲染,其中,对上级组件渲染时向下级组件传递数据元素和回调函数。该实施方式可以提高页面组件间的数据流向控制的有效性。

Description

页面组件间的数据流向控制方法和装置
技术领域
本申请涉及计算机技术领域,具体涉及页面显示技术领域,尤其涉及页面组件间的数据流向控制方法和装置。
背景技术
在计算机领域,页面的组件化亦即页面的模块化,在页面的前端展现中,往往将页面的数据元素(data element,数据的基本单位,一个数据元素可由若干不可分割的数据项组成)、函数、通讯协议等数据进行封装形成多个页面组件,从而实现页面的组件化。上述封装过程中,页面组件间的数据流向(例如包括数据的配置、渲染、事件间的通信等)控制直接影响页面前端开发的难易程度、效率,甚至工程的可维护性。
现有的页面组件间的数据流向控制方法,往往包括事件通信和代理服务两种方式。其中,事件通信方式中,数据只会从事件触发者到事件注册者,对于结构复杂的页面,容易造成数据流向杂乱无章;代理服务方式中,数据由同一个代理服务管理,由于多个组件同时依赖代理服务,无法实现组件间的低耦合要求。因此,现有的页面组件间的数据流向控制方法存在有效性不高的问题。
发明内容
本申请的目的在于提出一种改进的页面组件间的数据流向控制方法和装置,来解决以上背景技术部分提到的技术问题。
一方面,本申请提供了一种页面组件间的数据流向控制方法,所述方法包括:对页面文档的结构进行解析,获取页面组件间的嵌套层次关系,其中,所述页面组件包括数据元素和回调函数,所述嵌套层次关系中,下级组件嵌套于上级组件;根据所述嵌套层次关系,按照从上级组件到下级组件的顺序对各页面组件进行渲染,其中,对上级组件渲染时向下级组件传递数据元素和回调函数。
在一些实施例中,所述根据所述嵌套层次关系,按照从上级组件到下级组件的顺序对各页面组件进行渲染包括:对上级组件进行渲染时,将下级组件中数据元素的数据类型进行缓存;对下级组件进行渲染时,从缓存中取出所需数据类型进行校验,校验通过则进行渲染。
在一些实施例中,所述校验包括对数据通讯协议的校验、数据类型字段的校验中的至少一种。
在一些实施例中,所述对上级组件渲染时向下级组件传递数据元素和回调函数包括:将下级组件中的数据元素和回调函数通过引用传递的方式进行缓存。
在一些实施例中,所述方法还包括:检测各页面组件的文档属性值是否发生变化,其中,所述文档属性值包括页面组件中的数据元素或回调函数的索引或指针的值;如果任一页面组件的文档属性值发生变化,通过回调函数向发生变化的页面组件的上级组件发送所述变化的变化信息;根据所述变化信息,将发生变化的页面组件的上级组件和发生变化的页面组件重新渲染。
第二方面,本申请提供了一种页面组件间的数据流向控制装置,所述装置包括:解析模块,配置用于对页面文档的结构进行解析,获取页面组件间的嵌套层次关系,其中,所述页面组件包括数据元素和回调函数,所述嵌套层次关系中,下级组件嵌套于上级组件;渲染模块,配置用于根据所述嵌套层次关系,按照从上级组件到下级组件的顺序对各页面组件进行渲染,其中,对上级组件渲染时向下级组件传递数据元素和回调函数。
在一些实施例中,所述渲染模块包括:缓存单元,配置用于对上级组件进行渲染时,将下级组件中数据元素的数据类型进行缓存;校验单元,配置用于对下级组件进行渲染时,从缓存中取出所需数据类型进行校验,校验通过则进行渲染。
在一些实施例中,所述校验包括对数据通讯协议的校验、数据类型字段的校验中的至少一种。
在一些实施例中,所述渲染模块还配置用于:将下级组件中的数据元素和回调函数通过引用传递的方式进行缓存。
在一些实施例中,所述装置还包括:检测模块,配置用于检测各页面组件的文档属性值是否发生变化,其中,所述文档属性值包括页面组件中的数据元素或回调函数的索引或指针的值;发送模块,配置用于如果任一页面组件的文档属性值发生变化,通过回调函数向发生变化的页面组件的上级组件发送所述变化的变化信息;所述渲染模块,还配置用于根据所述变化信息,将发生变化的页面组件的上级组件和发生变化的页面组件重新渲染。
本申请提供的页面组件间的数据流向控制方法和装置,通过对页面文档的结构进行解析,获取页面组件间的嵌套层次关系,其中,上述嵌套层次关系中,下级组件嵌套于上级组件,页面组件包括数据元素和回调函数,然后根据上述嵌套层次关系,按照从上级组件到下级组件的顺序对各页面组件进行渲染,其中,在对上级组件渲染时,向下级组件传递数据元素和回调函数。由于按照从上级组件到下级组件的顺序对各页面组件进行渲染,且渲染过程中由上级组件向下级组件传递数据元素和回调函数,使数据流向单一,且避免使用代理服务,组件间的耦合度低,从而可以提高页面组件间的数据流向控制的有效性。
附图说明
通过阅读参照以下附图所作的对非限制性实施例的详细描述,本申请的其它特征、目的和优点将会变得更明显:
图1是根据本申请的页面组件间的数据流向控制方法的一个实施例的流程图;
图2是将页面中的数据元素进行封装形成的页面组件间的嵌套层次关系示意图;
图3是根据本申请的页面组件间的数据流向控制方法的一个实施例对图2示出的页面组件进行数据流向控制的示意图;
图4是根据本申请的页面组件间的数据流向控制方法的又一个实施例的流程图;
图5示出了可以应用本申请实施例的示例性系统架构;
图6是根据本申请的页面组件间的数据流向控制装置的一个实施例的结构示意图;
图7是适于用来实现本申请实施例的电子设备的计算机系统的结构示意图。
具体实施方式
下面结合附图和实施例对本申请作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释相关发明,而非对该发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与有关发明相关的部分。
需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本申请。
请参考图1,其示出了页面组件间的数据流向控制方法的一个实施例的流程100。本实施例主要以该方法应用于具有一定运算能力和显示能力的电子设备中来举例说明。该页面组件间的数据流向控制方法,包括以下步骤:
步骤101,对页面文档的结构进行解析,获取页面组件间的嵌套层次关系。
在本实施例中,电子设备可以首先对页面文档的结构进行解析,从而获取页面组件间的嵌套层次关系,其中,页面组件可以包括数据元素和回调函数。在嵌套层次关系中,下级组件嵌套于上级组件。
这里,页面文档可以包括但不限于以下文档中的一种:HTML(HyperText MarkupLanguage,超文本标记语言)文档、ASP(Active Server Pages,动态服务器页面)文档、JSP(Java Server Pages,java服务器页面)文档等等。文档的结构可以用来表示文档内容的层次关系。文档的结构可以通过各种形式进行记录,例如,文档的结构可以通过DOM(DocumentObject Model,文档对象模型)树记录。通过DOM树描述的文档结构,可以将每个树封装成一个页面组件,例如,整个DOM树被封装成最大的页面组件,DOM树的每个子树被封装成嵌套于该最大的页面组件的下级组件,每个子树下的分子树可以被封装成嵌套于该子树被封装成的页面组件的下级组件,以此类推。
作为一个示例,图2示出了将页面中的数据元素进行封装形成页面组件间的嵌套层次关系示意图。如图2所示,页面201包括两个较大版块2011、2012,版块2011包括数据元素20111、20112和20113,版块2012包括数据元素20121和20122,它们分别被封装成对应页面201的页面组件202,页面组件202的下级组件页面组件2021和2022,页面组件2021的下级组件页面组件20211、20212和20213,页面组件2022的下级组件页面组件20221和20222。其中,电子设备对页面201的结构进行解析得到的嵌套层次关系为:页面组件2021和2022嵌套于页面组件202,页面组件20211、20212和20213嵌套于页面组件2021,页面组件20221和20222嵌套于页面组件2022。
其中,每个页面组件的最小单元可以包括数据元素和回调函数。这里,回调函数是一个通过指针调用的函数,例如,把函数A的指针或地址作为参数传递给另一个函数B,函数B可以通过函数A的指针或地址来调用函数A,则函数A是一个回调函数。数据元素例如可以一本书的书目信息,而书目信息的每一项(如书名、作者名等)分别为一个数据项。
步骤102,根据上述嵌套层次关系,按照从上级组件到下级组件的顺序对各页面组件进行渲染。
在本实施例中,电子设备接着可以根据步骤101获取的嵌套层次关系,按照从上级组件到下级组件的顺序对各页面组件进行渲染。其中,在上级组件渲染过程中,可以向下级组件传递下级组件需要的数据元素和回调函数。从而,页面组件中数据元素和回调函数的数据流向为上级组件到下级组件。
在前端开发的页面渲染过程中,往往会根据数据元素构建渲染树,对各个数据元素进行位置计算、样式计算等等,然后对各个数据元素进行描绘。本实施例中,电子设备可以根据页面组件的嵌套层次关系确定页面组件的渲染顺序,对各页面组件按照从上级组件到下级组件的顺序进行渲染。
请参考图3,其示出了对图2所示的页面进行渲染时页面组件间的数据流向。如图3所示,电子设备首先将页面201的数据元素、回调函数及页面组件间的通信协议进行解析,并发送给页面组件202,接着,在对页面组件202进行渲染时,将页面组件2021和2022中的数据类型、回调函数分别传递给页面组件2021和2022,例如在一些实现中,电子设备可以分别将页面组件2021、页面组件2022这两个下级组件中的数据元素、回调函数以及数据元素的数据类型等进行缓存,在对页面组件2021、页面组件2022分别进行渲染时,从缓存中取出相应页面组件所需的数据元素、数据类型和回调函数进行渲染。在对页面组件2021进行渲染时,分别对其下级组件页面组件20211、20212、20213的数据元素、回调函数以及数据元素的数据类型等进行缓存;在对页面组件2022进行渲染时,分别对其下级组件页面组件20221、20222的数据元素、回调函数以及数据元素的数据类型等进行缓存;以次类推。每个页面组件而言,其数据元素、回调函数以及数据元素的数据类型都可以存储在数据存储区301中,数据存储区中的这些数据组成了页面201。图3中示出的页面组件间的数据流向从上级组件到下级组件,流向单一。
在本实施例的一些可选实现方式中,电子设备根据嵌套层次关系对各页面组件进行渲染时,对上级组件进行渲染过程中将其下级组件中数据元素、回调函数以及数据元素的数据类型进行缓存,在对下级组件进行渲染时,可以先从缓存中取出所需数据类型进行校验,校验通过后再对该下级组件进行渲染。可选地,下级组件对所需数据类型的校验可以包括但不限于对数据通讯协议的校验、数据类型字段的校验中的至少一种。当电子设备在校验过程中确定缓存中数据元素的数据类型字段与所需数据类型字段一致时,可以确定校验通过,此时,电子设备可以将符合所需数据类型的数据元素保存到相应页面组件的存储区(如页面组件的声明state等)中,并触发预设的渲染方法(如render方法等)对该页面组件进行渲染。当电子设备在校验过程中确定缓存中数据元素的数据类型字段与所需数据类型字段不一致时,可以进一步确定数据异常,还可以给出数据异常通知。
在本实施例的一些可选实现方式中,对上级组件渲染时向下级组件传递数据元素和回调函数包括:将下级组件中的数据元素和回调函数通过引用传递的方式进行缓存。引用传递,一般是指在调用函数时传递实际参数的地址。这里,电子设备可以将数据元素或回调函数的地址(如索引或指针的值)传递给下级组件,下级组件在读取数据元素或调用回调函数时,可以通过对数据元素或回调函数的地址的改变来改变所读取的数据元素或所调用的回调函数。
在本实施例中,通过对页面文档的结构进行解析,获取各页面组件间的嵌套层次关系,然后按照嵌套层次关系从上级组件到下级组件的顺序对各页面组件进行渲染,且渲染过程中由上级组件向下级组件传递数据元素和回调函数,使数据流向单一,且不需使用代理服务,组件间的耦合度低,从而可以提高页面组件间的数据流向控制的有效性。
请参考图4,图4示出了根据本申请的页面组件间的数据流向控制方法的又一个实施例的流程400。如图4所示,流程400包括:
步骤401,对页面文档的结构进行解析,获取页面组件间的嵌套层次关系。
在本实施例中,电子设备可以首先对页面文档的结构进行解析,从而获取页面组件间的嵌套层次关系,其中,页面组件可以包括数据元素和回调函数。例如,电子设备可以通过页面文档的结构,将页面封装成多个不同层次的页面组件,每个页面组件的最小单元可以包括数据元素和回调函数。不同层次的页面组件间可以具有嵌套关系,构成页面组件间的嵌套层次关系。在该嵌套层次关系中,下级组件嵌套于上级组件。
步骤402,根据上述嵌套层次关系,按照从上级组件到下级组件的顺序对各页面组件进行渲染。
在本实施例中,电子设备接着可以根据步骤401获取的嵌套层次关系,按照从上级组件到下级组件的顺序对各页面组件进行渲染。其中,在上级组件渲染过程中,可以向下级组件传递下级组件需要的数据元素和回调函数。从而,页面组件中数据元素和回调函数的数据流向为上级组件到下级组件。
步骤403,检测各页面组件的文档属性值是否发生变化。
在本实施例中,电子设备可以在页面组件的渲染过程中或者渲染完成后,检测页面组件的文档属性值是否发生变化。这里,页面组件的文档属性可以用来表示页面组件中的各文档对象(如HTML文档对象)的属性,例如数据元素或回调函数的引用类型—索引或指针,页面组件的文档属性值可以是上述索引或指针的值。
可以理解,当页面组件的文档属性值发生变化时,表示该页面组件有新的数据元素加入,或者数据元素或回调函数的索引或指针的值发生变化,即数据元素或回调函数发生变化。
步骤404,如果任一页面组件的文档属性值发生变化,通过回调函数向发生变化的页面组件的上级组件发送上述变化的变化信息。
在本实施例中,如果任一页面组件的文档属性值发生变化,电子设备可以将上述变化的变化信息通过回调函数发送给其上级组件。这里,变化信息可以包括发生变化的数据元素或回调函数,以及其变化的属性、变化前后的属性值等。
作为示例,请参考图3,如果电子设备检测到页面组件20211的某个数据元素(例如一个下拉框)的文档属性值发生变化,则可以通过调用页面组件2021中的回调函数将变化信息发送给页面组件2021,此时,电子设备可以继续检测页面组件2021的文档属性值是否发生变化,如果发生变化,则将页面组件2021的变化信息发送给页面组件202,如果不发生变化(如仅改变了相应页面组件的state等),则页面组件2021接收页面组件20211发送的变化信息并根据变化信息对自身数据或对下级组件的数据元素或回调函数的传递逻辑进行调整。
步骤405,根据上述变化信息,将发生变化的页面组件的上级组件和发生变化的页面组件重新渲染。
在本实施例中,电子设备可以根据上述变化信息,将发生变化的页面组件的上级组件和发生变化的页面组件仍按照从上级组件到下级组件的顺序重新渲染。
请参考步骤404中以图3为例给出的示例,页面组件20211的文档属性值发生变化,进一步地,页面组件2021和202的文档属性值发生变化,则电子设备可以依次重新渲染页面组件202、2021、20211。可选地,如果检测到页面组件2021的文档属性值发生变化,电子设备可以进一步检测在该变化的基础上页面组件202和页面组件20211的文档属性值是否发生变化,假设页面组件202的文档属性值没有发生变化,而页面组件20211的文档属性值发生变化,则电子设备可以依次重新渲染页面组件2021和页面组件20211。渲染过程和步骤402中一致,对上级组件进行渲染时向下级组件传递数据元素和回调函数,在此不再赘述。
在本实施例中,上述实现流程中的步骤401、步骤402分别与前述实施例中的步骤201、步骤202基本相同,在此不再赘述。
从图4中可以看出,与图2对应的实施例不同的是,本实施例中的页面组件间的数据流向控制方法的流程400增加了步骤403、404、405。通过增加的步骤403、404、405,本实施例突出了在页面组件的文档属性值发生改变时对数据流向的控制,数据流向仍然为从上级组件到下级组件,保证了数据流向的单一,进一步提高页面组件间的数据流向控制的有效性。
请参考图5,图5示出了可以应用本申请实施例的示例性系统架构500。
如图5所示,系统架构500可以包括终端设备501、502、网络503和服务器504。网络503用以在终端设备501、502和服务器504之间提供通信链路的介质。网络503可以包括各种连接类型,例如有线、无线通信链路或者光纤电缆等等。
终端设备501、502可以通过网络503与服务器504交互,以接收或发送消息等。终端设备501、502上可以安装有各种通讯客户端应用,例如浏览器应用、搜索类应用、购物类应用、理财类应用、地图类应用、社交平台应用、邮箱客户端、即时通信工具等等。
终端设备501、502可以是支持浏览器应用等安装于其上的各种电子设备,包括但不限于智能手机、智能手表、平板电脑、个人数字助理、电子书阅读器、MP3播放器(MovingPicture Experts Group Audio Layer III,动态影像专家压缩标准音频层面3)、MP4(Moving Picture Experts Group Audio Layer IV,动态影像专家压缩标准音频层面4)播放器、膝上型便携计算机和台式计算机等等。
服务器504可以是提供各种服务的服务器。例如服务器504可以是对终端设备501、502的浏览器应用等提供支持的后台服务器等。服务器可以对接收到的数据进行存储、生成等处理,并将处理结果反馈给终端设备。
需要说明的是,本申请实施例所提供的页面组件间的数据流向控制方法一般通过终端设备501、502执行,但在一些情况下也可以通过服务器504执行,本申请对此不做限定。相应地,本申请实施例所提供的页面组件间的数据流向控制装置一般设置在端设备501、502中,也可以设置在服务器504中。
应该理解,图5中的终端设备、网络和服务器的数目仅仅是示意性的。根据实现需要,可以具有任意数目的终端设备、网络和服务器。
进一步参考图6,作为对上述各图所示方法的实现,本申请提供了一种页面组件间的数据流向控制装置的一个实施例,该装置实施例与图2所示的方法实施例相对应,该装置具体可以应用于电子设备(例如图5所示的终端设备501、502等)中。
如图6所示,本实施例所述的页面组件间的数据流向控制装置600包括:解析模块601和渲染模块602。其中,解析模块601可以配置用于对页面文档的结构进行解析,获取页面组件间的嵌套层次关系,其中,页面组件包括数据元素和回调函数,该嵌套层次关系中,下级组件嵌套于上级组件;渲染模块602可以配置用于根据上述嵌套层次关系,按照从上级组件到下级组件的顺序对各页面组件进行渲染,其中,对上级组件渲染时向下级组件传递数据元素和回调函数。
在本实施例中,解析模块601首先可以对页面文档的结构进行解析,从而获取页面组件间的嵌套层次关系,其中,页面组件可以包括数据元素和回调函数。在嵌套层次关系中,下级组件嵌套于上级组件。这里,页面文档可以包括但不限于以下文档中的一种:HTML文档、ASP文档、JSP文档等等。
在本实施例中,渲染模块602接着可以根据解析模块601获取的嵌套层次关系,按照从上级组件到下级组件的顺序对各页面组件进行渲染。其中,在上级组件渲染过程中,可以向下级组件传递下级组件需要的数据元素和回调函数。从而,页面组件中数据元素和回调函数的数据流向为上级组件到下级组件。
在本实施例的一些可选实现方式中,渲染模块602可以包括缓存单元(未示出)和校验单元(未示出)。其中:缓存单元可以配置用于对上级组件进行渲染时,将下级组件中数据元素的数据类型进行缓存;校验单元可以配置用于对下级组件进行渲染时,从缓存中取出所需数据类型进行校验,校验通过则进行渲染。可选地,校验单元的校验包括对数据通讯协议的校验、数据类型字段的校验中的至少一种。
在本实施例的一些可选实现方式中,渲染模块602还可以配置用于:将下级组件中的数据元素和回调函数通过引用传递的方式进行缓存。这里,渲染模块602在对上级组件进行渲染时,可以将下级组件的数据元素或回调函数的地址(如索引或指针的值)传递给下级组件,下级组件在读取数据元素或调用回调函数时,可以通过对数据元素或回调函数的地址的改变来改变所读取的数据元素或所调用的回调函数。
在本实施例的一些可选实现方式中,装置600还可以包括检测模块(未示出)和发送模块(未示出)。其中:检测模块可以配置用于检测各页面组件的文档属性值是否发生变化,其中,文档属性值包括页面组件中的数据元素或回调函数的索引或指针的值;发送模块可以配置用于如果任一页面组件的文档属性值发生变化,通过回调函数向发生变化的页面组件的上级组件发送所述变化的变化信息。此时,渲染模块602还可以配置用于根据上述变化信息,将发生变化的页面组件的上级组件和发生变化的页面组件重新渲染。
值得说明的是,页面组件间的数据流向控制装置600中记载的诸模块或单元与参考图2描述的方法中的各个步骤相对应。由此,上文针对方法描述的操作和特征同样适用于页面组件间的数据流向控制装置600及其中包含的模块或单元,在此不再赘述。
本领域技术人员可以理解,上述页面组件间的数据流向控制装置600还包括一些其他公知结构,例如处理器、存储器等,为了不必要地模糊本公开的实施例,这些公知的结构在图6中未示出。
下面参考图7,其示出了适于用来实现本申请实施例的服务器或终端的计算机系统700的结构示意图。
如图7所示,计算机系统700包括中央处理单元(CPU)701,其可以根据存储在只读存储器(ROM)702中的程序或者从存储部分708加载到随机访问存储器(RAM)703中的程序而执行各种适当的动作和处理。在RAM 703中,还存储有系统700操作所需的各种程序和数据。CPU 701、ROM 702以及RAM 703通过总线704彼此相连。输入/输出(I/O)接口705也连接至总线704。
以下部件连接至I/O接口705:包括键盘、鼠标等的输入部分706;包括诸如阴极射线管(CRT)、液晶显示器(LCD)等以及扬声器等的输出部分707;包括硬盘等的存储部分708;以及包括诸如LAN卡、调制解调器等的网络接口卡的通信部分709。通信部分709经由诸如因特网的网络执行通信处理。驱动器710也根据需要连接至I/O接口705。可拆卸介质711,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器710上,以便于从其上读出的计算机程序根据需要被安装入存储部分708。
特别地,根据本申请的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本申请的实施例包括一种计算机程序产品,其包括有形地包含在机器可读介质上的计算机程序,所述计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分709从网络上被下载和安装,和/或从可拆卸介质711被安装。
本申请实施例中所涉及到的单元可以通过软件的方式实现,也可以通过硬件的方式来实现。所描述的模块也可以设置在处理器中,例如,可以描述为:一种处理器包括解析模块和渲染模块。其中这些模块的名称在某种情况下并不构成对该模块本身的限定,例如,分组模块还可以被描述为“配置用于对页面文档的结构进行解析,获取页面组件间的嵌套层次关系的模块”。
作为另一方面,本申请还提供了一种计算机可读存储介质,该计算机可读存储介质可以是上述实施例中所述装置中所包含的计算机可读存储介质;也可以是单独存在,未装配入终端中的计算机可读存储介质。所述计算机可读存储介质存储有一个或者一个以上程序,当所述程序被一个或者一个以上的处理器执行时,使得所述设备:对页面文档的结构进行解析,获取页面组件间的嵌套层次关系,其中,所述页面组件包括数据元素和回调函数,所述嵌套层次关系中,下级组件嵌套于上级组件;根据所述嵌套层次关系,按照从上级组件到下级组件的顺序对各页面组件进行渲染,其中,对上级组件渲染时向下级组件传递数据元素和回调函数。
以上描述仅为本申请的较佳实施例以及对所运用技术原理的说明。本领域技术人员应当理解,本申请中所涉及的发明范围,并不限于上述技术特征的特定组合而成的技术方案,同时也应涵盖在不脱离所述发明构思的情况下,由上述技术特征或其等同特征进行任意组合而形成的其它技术方案。例如上述特征与本申请中公开的(但不限于)具有类似功能的技术特征进行互相替换而形成的技术方案。

Claims (12)

1.一种页面组件间的数据流向控制方法,其特征在于,所述方法包括:
对页面文档的结构进行解析,获取页面组件间的嵌套层次关系,其中,所述页面组件包括数据元素和回调函数,所述嵌套层次关系中,下级组件嵌套于上级组件;
根据所述嵌套层次关系,按照从上级组件到下级组件的顺序对各页面组件进行渲染,其中,对上级组件渲染时向下级组件传递数据元素和回调函数。
2.根据权利要求1所述的方法,其特征在于,所述根据所述嵌套层次关系,按照从上级组件到下级组件的顺序对各页面组件进行渲染包括:
对上级组件进行渲染时,将下级组件中数据元素的数据类型进行缓存;
对下级组件进行渲染时,从缓存中取出所需数据类型进行校验,校验通过则进行渲染。
3.根据权利要求2所述的方法,其特征在于,所述校验包括对数据通讯协议的校验、数据类型字段的校验中的至少一种。
4.根据权利要求1所述的方法,其特征在于,所述对上级组件渲染时向下级组件传递数据元素和回调函数包括:
将下级组件中的数据元素和回调函数通过引用传递的方式进行缓存。
5.根据权利要求1-4中任一所述的方法,其特征在于,所述方法还包括:
检测各页面组件的文档属性值是否发生变化,其中,所述文档属性值包括页面组件中的数据元素或回调函数的索引或指针的值;
如果任一页面组件的文档属性值发生变化,通过回调函数向发生变化的页面组件的上级组件发送所述变化的变化信息;
根据所述变化信息,将发生变化的页面组件的上级组件和发生变化的页面组件重新渲染。
6.一种页面组件间的数据流向控制装置,其特征在于,所述装置包括:
解析模块,配置用于对页面文档的结构进行解析,获取页面组件间的嵌套层次关系,其中,所述页面组件包括数据元素和回调函数,所述嵌套层次关系中,下级组件嵌套于上级组件;
渲染模块,配置用于根据所述嵌套层次关系,按照从上级组件到下级组件的顺序对各页面组件进行渲染,其中,对上级组件渲染时向下级组件传递数据元素和回调函数。
7.根据权利要求6所述的装置,其特征在于,所述渲染模块包括:
缓存单元,配置用于对上级组件进行渲染时,将下级组件中数据元素的数据类型进行缓存;
校验单元,配置用于对下级组件进行渲染时,从缓存中取出所需数据类型进行校验,校验通过则进行渲染。
8.根据权利要求7所述的装置,其特征在于,所述校验包括对数据通讯协议的校验、数据类型字段的校验中的至少一种。
9.根据权利要求6所述的装置,其特征在于,所述渲染模块还配置用于:将下级组件中的数据元素和回调函数通过引用传递的方式进行缓存。
10.根据权利要求6-9中任一所述的装置,其特征在于,所述装置还包括:
检测模块,配置用于检测各页面组件的文档属性值是否发生变化,其中,所述文档属性值包括页面组件中的数据元素或回调函数的索引或指针的值;
发送模块,配置用于如果任一页面组件的文档属性值发生变化,通过回调函数向发生变化的页面组件的上级组件发送所述变化的变化信息;
所述渲染模块,还配置用于根据所述变化信息,将发生变化的页面组件的上级组件和发生变化的页面组件重新渲染。
11.一种电子设备,包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序,
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如权利要求1-5中任一所述的方法。
12.一种计算机可读存储介质,其上存储有计算机程序,其中,所述程序被处理器执行时实现如权利要求1-5中任一所述的方法。
CN201610270495.9A 2016-04-27 2016-04-27 页面组件间的数据流向控制方法和装置 Active CN107315646B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201610270495.9A CN107315646B (zh) 2016-04-27 2016-04-27 页面组件间的数据流向控制方法和装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201610270495.9A CN107315646B (zh) 2016-04-27 2016-04-27 页面组件间的数据流向控制方法和装置

Publications (2)

Publication Number Publication Date
CN107315646A CN107315646A (zh) 2017-11-03
CN107315646B true CN107315646B (zh) 2021-01-26

Family

ID=60185713

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201610270495.9A Active CN107315646B (zh) 2016-04-27 2016-04-27 页面组件间的数据流向控制方法和装置

Country Status (1)

Country Link
CN (1) CN107315646B (zh)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108495192B (zh) * 2018-03-13 2021-04-23 武汉斗鱼网络科技有限公司 页面编辑处理方法及装置
CN108427568B (zh) * 2018-04-28 2021-04-27 北京小米移动软件有限公司 用户界面的更新方法及装置
CN110471656B (zh) * 2018-05-10 2024-09-20 北京京东尚科信息技术有限公司 组件层级的调整方法和装置
CN110968310B (zh) * 2018-09-30 2023-06-27 北京国双科技有限公司 网页组件渲染方法及系统
CN109284470B (zh) * 2018-10-25 2020-12-04 天津字节跳动科技有限公司 页面窗口通信方法及装置
CN111782311B (zh) * 2020-05-11 2023-01-10 完美世界(北京)软件科技发展有限公司 渲染方法、装置、设备和可读介质
CN112068835A (zh) * 2020-09-04 2020-12-11 中国平安财产保险股份有限公司 一种在线生成页面的方法和装置
CN113721908B (zh) * 2021-08-30 2024-03-22 湖南快乐阳光互动娱乐传媒有限公司 一种无限级联组件渲染方法和装置

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102779164A (zh) * 2012-06-20 2012-11-14 深圳市远行科技有限公司 一种业务系统及其动态页面的渲染方法
CN103546476A (zh) * 2013-10-30 2014-01-29 北京华胜天成科技股份有限公司 页面组件之间的消息传递方法及系统

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7681112B1 (en) * 2003-05-30 2010-03-16 Adobe Systems Incorporated Embedded reuse meta information
US8407576B1 (en) * 2008-09-02 2013-03-26 Sitscape, Inc. Situational web-based dashboard
CN101996073B (zh) * 2009-08-31 2014-02-05 阿里巴巴集团控股有限公司 一种组件渲染方法及装置
US9021435B2 (en) * 2010-05-20 2015-04-28 Salesforce.Com, Inc. Methods and systems for providing a user interface in a multi-tenant database environment
CN102331985B (zh) * 2010-07-12 2013-09-25 阿里巴巴集团控股有限公司 网页页面的分片嵌套缓存的处理方法和装置
CN103136201A (zh) * 2011-11-22 2013-06-05 阿里巴巴集团控股有限公司 页面信息的展示方法和装置
US8893014B1 (en) * 2012-06-28 2014-11-18 Google Inc. Deferred loading of a web page
CN104714980B (zh) * 2013-12-17 2018-04-06 阿里巴巴集团控股有限公司 页面嵌套路径确定方法及装置
CN103955364B (zh) * 2014-04-15 2017-06-20 南威软件股份有限公司 一种适用于手机的前端组件方法
CN105354013B (zh) * 2014-08-18 2019-07-23 阿里巴巴集团控股有限公司 应用界面渲染方法及装置
CN104573066B (zh) * 2015-01-26 2017-11-03 中国工商银行股份有限公司 页面复用方法及装置
CN104866534A (zh) * 2015-04-28 2015-08-26 北京奇虎科技有限公司 页面展示方法及装置
CN105095445B (zh) * 2015-07-24 2019-06-04 北京奇虎科技有限公司 一种页面生成方法和系统
CN105183760B (zh) * 2015-07-24 2020-04-10 北京奇虎科技有限公司 一种网页组件加载方法和装置

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102779164A (zh) * 2012-06-20 2012-11-14 深圳市远行科技有限公司 一种业务系统及其动态页面的渲染方法
CN103546476A (zh) * 2013-10-30 2014-01-29 北京华胜天成科技股份有限公司 页面组件之间的消息传递方法及系统

Also Published As

Publication number Publication date
CN107315646A (zh) 2017-11-03

Similar Documents

Publication Publication Date Title
CN107315646B (zh) 页面组件间的数据流向控制方法和装置
US11531715B2 (en) Systems and methods for single page application server-side renderer
CN106991154B (zh) 网页渲染方法、装置、终端及服务器
US8935798B1 (en) Automatically enabling private browsing of a web page, and applications thereof
CN100550013C (zh) 客户端计算机显示数据的方法
US8527862B2 (en) Methods for making ajax web applications bookmarkable and crawlable and devices thereof
US20070174420A1 (en) Caching of web service requests
CN106294658B (zh) 网页快速展示方法和装置
US8645916B2 (en) Crunching dynamically generated script files
CN110704200B (zh) 转换调用接口的方法和装置
CN110221871B (zh) 网页获取方法、装置、计算机设备及存储介质
US11677809B2 (en) Methods for transforming a server side template into a client side template and devices thereof
CN105069132A (zh) 一种基于静态外壳的网页实现方法
CN113382083B (zh) 一种网页截图方法和装置
CN110795649A (zh) 目标页面展示方法、装置、系统及电子设备
WO2016100541A1 (en) Network based static font subset management
CN113076294B (zh) 一种信息分享方法和装置
CN110059278A (zh) Web页面配置方法、服务器及计算机可读存储介质
CN113452733A (zh) 文件下载方法和装置
US20180084075A1 (en) Request cache to improve web applications performance
CN110377273B (zh) 一种数据处理的方法、装置、介质和电子设备
US20140129666A1 (en) Preemptive caching of data
CN113449216A (zh) 一种文件处理方法、装置及存储介质
CN111767498A (zh) 一种实现文件信息共享的方法和装置
CN113704648A (zh) 页面数据处理方法、装置、设备及存储介质

Legal Events

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