CN110309461A - 页面展现方法和装置 - Google Patents
页面展现方法和装置 Download PDFInfo
- Publication number
- CN110309461A CN110309461A CN201910599173.2A CN201910599173A CN110309461A CN 110309461 A CN110309461 A CN 110309461A CN 201910599173 A CN201910599173 A CN 201910599173A CN 110309461 A CN110309461 A CN 110309461A
- Authority
- CN
- China
- Prior art keywords
- page
- webpage
- file
- virtual
- web page
- 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.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/957—Browsing optimisation, e.g. caching or content distillation
- G06F16/9574—Browsing optimisation, e.g. caching or content distillation of access to content, e.g. by caching
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/958—Organisation or management of web site content, e.g. publishing, maintaining pages or automatic linking
- G06F16/986—Document structures and storage, e.g. HTML extensions
Landscapes
- Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Information Transfer Between Computers (AREA)
Abstract
本申请公开了一种页面展现方法和装置,该方法包括:在展现出的第一页面上检测到页面切换操作时,获取待切换到的第二页面的源代码;基于该第一页面及第二页面的源代码,确定第二页面与第一页面的差异元素信息;获取缓存的该第一网页的第一虚拟文档对象模型DOM文件;依据该差异元素信息,更新第一网页的第一虚拟DOM文件,以构建出该第二网页对应的第二虚拟DOM文件;将该第二虚拟DOM文件映射为该第二网页的真实DOM文件;基于该第二网页的真实DOM文件加载并展现该第二网页。本申请的方案可以提高页面加载速度,减少页面展现速度过慢的情况。
Description
技术领域
本申请涉及网页应用技术领域,尤其涉及一种页面展现方法和装置。
背景技术
在网站中一般都包含有多个页面,为了实现不同的需求,经常会涉及到网页的切换。
由于不同页面之间会有所差别,浏览器每次需要切换页面时,都需要从网站获取待展现的页面对应的页面数据,然后加载并展现该页面。然而,浏览器在获取到页面数据之后,加载页面的过程需要较长的时间,导致页面展现速度过慢。
发明内容
有鉴于此,本申请提供了一种页面展现方法和装置,以提高页面加载速度,减少页面展现速度过慢的情况。
为实现上述目的,一方面,本申请提供了一种页面展现方法,包括:
在展现出的第一页面上检测到页面切换操作时,获取待切换到的第二页面的源代码;
基于所述第一页面的源代码以及第二页面的源代码,确定所述第二页面与所述第一页面的差异元素信息,所述差异元素信息为所述第一页面以及第二页面中存在差异的元素的信息;
获取缓存的所述第一网页的第一虚拟文档对象模型DOM文件,所述第一虚拟DOM文件包括所述第一网页中各个页面元素对应的虚拟DOM节点;
依据所述差异元素信息,更新所述第一网页的第一虚拟DOM文件,以构建出所述第二网页对应的第二虚拟DOM文件,所述第二虚拟DOM文件包括所述第二网页中各个页面元素对应的虚拟DOM节点;
将所述第二虚拟DOM文件映射为所述第二网页的真实DOM文件;
基于所述第二网页的真实DOM文件加载并展现所述第二网页。
优选的,所述差异元素信息包括以下任意一种或者多种:
第一页面中具有且第二页面中不具有的第一网页元素;
第二网页中具有且第一页面中不具有的第二网页元素;
第二网页与第一网页中相同类型但属性值不同的第三网页元素;
所述依据所述差异元素信息,更新所述第一网页的第一虚拟DOM文件,以构建出所述第二网页对应的第二虚拟DOM文件,包括:
如果所述差异元素信息包括所述第一页面元素,将所述第一虚拟DOM文件中与所述第一网页元素对应的虚拟DOM节点删除;
如果所述差异元素信息包括所述第二网页元素,在所述第一虚拟DOM文件中创建与所述第二网页元素对应的虚拟DOM节点;
如果所述差异元素信息包括所述第三网页元素,将所述第一虚拟DOM文件中所述第三网页元素对应的虚拟DOM节点的属性值调整为所述第二网页中所述第三网页元素对应的属性值,得到所述第二网页对应的虚拟DOM文件。
优选的,所述如果所述差异元素信息包括所述第二网页元素,在所述第一虚拟DOM文件中创建与所述第二网页元素对应的虚拟DOM节点,包括:
如果所述差异元素信息包括所述第二网页元素,从组件库中调用与所述第二网页元素对应的组件,并将调用的组件作为所述第二网页元素对应的虚拟DOM节点添加到所述第一虚拟DOM文件中。
优选的,所述在展现出的第一页面上检测到页面切换操作时,获取待切换到的第二页面的源代码,包括:
在展现出的第一页面上检测到页面切换操作时,确定输入所述页面切换操作的用户;
确定与所述用户的用户权限以及所述页面切换操作匹配的第二页面,并获取所述第二页面的源代码。
优选的,在所述基于所述第二网页的真实DOM文件加载并展现所述第二网页之后,还包括:
在内存中缓存所述第二虚拟DOM文件。
又一方面,本申请还提供了一种页面展现装置,包括:
源代码获取单元,用于在展现出的第一页面上检测到页面切换操作时,获取待切换到的第二页面的源代码;
元素比较单元,用于基于所述第一页面的源代码以及第二页面的源代码,确定所述第二页面与所述第一页面的差异元素信息,所述差异元素信息为所述第一页面以及第二页面中存在差异的元素的信息;
文件获取单元,用于获取缓存的所述第一网页的第一虚拟文档对象模型DOM文件,所述第一虚拟DOM文件包括所述第一网页中各个页面元素对应的虚拟DOM节点;
文件调整单元,用于依据所述差异元素信息,更新所述第一网页的第一虚拟DOM文件,以构建出所述第二网页对应的第二虚拟DOM文件,所述第二虚拟DOM文件包括所述第二网页中各个页面元素对应的虚拟DOM节点;
文件转换单元,用于将所述第二虚拟DOM文件映射为所述第二网页的真实DOM文件;
页面展现单元,用于基于所述第二网页的真实DOM文件加载并展现所述第二网页。
优选的,所述元素比较单元确定出的所述差异元素信息包括以下任意一种或者多种:
第一页面中具有且第二页面中不具有的第一网页元素;
第二网页中具有且第一页面中不具有的第二网页元素;
第二网页与第一网页中相同类型但属性值不同的第三网页元素;
所述文件调整单元,包括:
节点删除单元,用于如果所述差异元素信息包括所述第一页面元素,将所述第一虚拟DOM文件中与所述第一网页元素对应的虚拟DOM节点删除;
节点创建单元,用于如果所述差异元素信息包括所述第二网页元素,在所述第一虚拟DOM文件中创建与所述第二网页元素对应的虚拟DOM节点;
属性更改单元,用于如果所述差异元素信息包括所述第三网页元素,将所述第一虚拟DOM文件中所述第三网页元素对应的虚拟DOM节点的属性值调整为所述第二网页中所述第三网页元素对应的属性值,得到所述第二网页对应的虚拟DOM文件。
优选的,所述节点创建单元,包括:
节点创建子单元,用于如果所述差异元素信息包括所述第二网页元素,从组件库中调用与所述第二网页元素对应的组件,并将调用的组件作为所述第二网页元素对应的虚拟DOM节点添加到所述第一虚拟DOM文件中。
优选的,所述源代码获取单元,包括:
权限确定子单元,用于在展现出的第一页面上检测到页面切换操作时,确定输入所述页面切换操作的用户;
代码获取子单元,用于确定与所述用户的用户权限以及所述页面切换操作匹配的第二页面,并获取所述第二页面的源代码。
优选的,还包括:
文件缓存单元,用于在所述页面展现单元基于所述第二网页的真实DOM文件加载并展现所述第二网页之后,在内存中缓存所述第二虚拟DOM文件。
经由上述的技术方案可知,在需要将第一页面切换为第二页面时,可以根据第一页面以及第二页面中的元素差异,以及已缓存的该第一页面的虚拟DOM文件,构建出第二页面的虚拟DOM文件,这样,在将第二页面的虚拟DOM文件转换为真实DOM文件之后,直接基于该第二网页的真实DOM文件进行页面加载便可以完成该第二页面的加载并展现,从而无需针对第二页面中每个元素分别进行一次页面加载,有效减少了页面切换过程中由于每次加载元素所需的重复加载页面的次数,从而避免了多次加载页面中重复数据所导致的耗时,有利于提高页面展现速度。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1示出了本申请的一种页面展现方法的一种流程示意图;
图2示出了本申请的一种页面展现方法的又一种流程示意图;
图3示出了本申请的一种页面展现装置的一种组成结构示意图。
具体实施方式
本申请实施例的方案适用于浏览器完成页面的加载以及展现,以提高完成页面加载的效率,提高页面展现速度。
下面结合附图对本申请的方案进行介绍。
如图1所示,其示出了本申请一种页面展现方法一个实施例的流程示意图,本实施例的方法可以应用于浏览器(也称为浏览器客户端),本实施例的方法可以包括:
S101,在展现出的第一页面上检测到页面切换操作时,获取待切换到的第二页面的源代码。
其中,为了便于区分,将浏览器已展现出的页面称为第一页面,而将待切换到的页面称为第二页面。其中,该第一页面与第二页面为属于同一个网站的页面。
其中,该页面切换操作为触发将第一页面切换为其他页面的操作。如,在展现出第一页面之后,用户可以通过点击该第一页面中图片、链接地址等,以触发请求第二页面。
可选的,考虑到网站中针对不同用户可能所希望呈现的网页内容会有所差别,因此,本申请实施例中还可以设置不同用户的权限。不同权限的用户所能访问的页面会有所差别,且不同权限的用户所能访问的同一页面的内容也会有所差别。相应的,在检测到页面切换操作时,还可以确定输入该页面切换操作的用户。然后,基于该用户的用户权限以及该页面切换操作,确定与该用户权限匹配的第二页面,并获取第二页面的源代码。
如,以购物网站为例,网站的管理人员以及普通用户所能看到的同一网页也会有所差别,因此,在检测到该页面切换操作之后,浏览器可以将用户的信息发送给网站的服务器,并由服务器确认出用户的权限之后,确定与该用户权限匹配的第二页面。
S102,基于该第一页面的源代码以及第二页面的源代码,确定该第二页面与该第一页面中的差异元素信息。
可以理解的是,页面的源代码中包含了构成该页面的所有元素的信息。其中,此处所提到的元素也可以称为页面的对象是指网页页面的页面元素,如,网页中的图片、文件、空间等都属于页面中的元素。
其中,该差异元素信息为该第一页面以及第二页面中存在差异的元素的信息。该差异元素信息可以通过对比第一页面以及第二页面的源代码,来分析出这两个页面之间所具有的不同的元素以及元素的标识、元素的属性值等等信息。
可选的,该差异元素信息可以包括如下任意一种或者多种:
第一页面中具有且第二页面中不具有的第一网页元素;
第二网页中具有且第一页面中不具有的第二网页元素;
第二网页与第一网页中相同类型但属性值不同的第三网页元素。
其中,第一网页元素是指仅仅在第一页面中包含,而第二页面中未包含的元素。如,假设第一页面中具有图片,而该第二网页中没有图片这一元素,则该图片就属于第一网页元素。
该第二网页元素是指第二网页中包含的元素,但是第一页面中却没有相应的元素。
而第三网页元素是指第二页面以及第一页面中都具有同一类型的一种元素,但是第二页面中该元素的属性值与第一页面中该元素的属性值不同。例如,第二网页中具有文本这一元素,而第一页面中也具有相同类型的该文本的元素,但是第二网页与该第一网页中该文本的内容不同,则该文本属于第三网页元素。
需要说明的是,为了便于区分,第二页面与第一页面中不同类型的差异元素,分别将不同差异类型的网页元素分别称为第一网页元素、第二网页元素以及第三网页元素。而相对第一网页而言,考虑到所切换到的第二网页有多种可能,因此,该第一网页与第二网页之间的存在差异的元素也会有所不同,如,第一网页中可能不存在仅仅第一网页有而第二网页不具有的第一网页元素,因此,本申请实施例中,对于第一网页元素、第二网页元素以及第三网页元素中的任意一种类型的网页元素均可能会出现不存在该种类型的网页元素、存在一个或者多个该种类型的网页元素的情况。
S103,获取缓存的该第一网页的第一虚拟文档对象模型(Document ObjectModel,DOM)文件。
其中,该第一虚拟DOM文件包括该第一网页中各个页面元素对应的虚拟DOM节点。其中,虚拟DOM文件中包含的虚拟DOM节点也成为虚拟DOM元素,是指利用JavaScript(简称为JS,一种直译式脚本语言)对象模拟出的DOM节点(也成为DOM元素)。其中,基于JS对象模拟DOM节点实际上就是网页元素映射在JS对象上,本申请对其具体实现不加限制。与真实的DOM文件对应,一个虚拟DOM文件就可以看成虚拟出的DOM树。
其中,为了便于区分,本申请实施例将第一网页对应的虚拟DOM文件称为第一虚拟DOM文件,而将后续构建出的第二网页的虚拟DOM文件称为第二虚拟DOM文件。
本申请实施例中,浏览器加载网页是先构建出网页的虚拟DOM文件,然后再将虚拟DOM文件转换为真实DOM文件,并基于真实DOM文件完成网页的加载与展现,由此可知,已展现出的每个网页都会对应有该网页的虚拟DOM文件。因此,该第一网页对应的第一DOM虚拟文件为加载该第一网页之前,构建出的包含该第一网页中各个页面元素对应的虚拟DOM节点的文件。
S104,依据该差异元素信息,更新该第一网页的第一虚拟DOM文件,以构建出该第二网页对应的第二虚拟DOM文件。
其中,该第二虚拟DOM文件包括该第二网页中各个页面元素对应的虚拟DOM节点。与前面第一虚拟DOM文件类似,该第二虚拟DOM文件中包含给第二网页中各个页面元素的虚拟DOM节点,每个网页元素的虚拟DOM节点为将该网页元素映射为JS对象得到的。
可以理解的是,完全重新构建一个网页对应的虚拟DOM文件的复杂度较高且耗时也会相对较长。而由于同一个网站的不同网页之间一般都具有一些相同类型的元素,如,不同网页种可能都会有同一款文本元素等,因此,在已经有网站中一个网页对应的虚拟DOM文件的情况下,可以在该网页对应的虚拟DOM文件的基础上进行调整,以构建出另一个网页对应的DOM文件,从而实现降低构建DOM文件所需的耗时,并降低复杂度。
基于此,本申请通过比较第一网页与第二网页中存在差异的差异元素,然后,基于差异元素信息,对该第一网页的第一虚拟DOM文件进行虚拟DOM节点的删除、增加或者属性修改等更新操作,以使得更新后的第一虚拟DOM文件包含且仅包含第二网页中各个网页元素对应的虚拟DOM节点。
可选的,在差异元素信息包含前面提到的第一页面元素、第二网页元素以及第三网页元素中的任意一种或者多种的情况下,更新该第一虚拟DOM文件可以包括如下几种可能情况:
如果该差异元素信息包括该第一页面元素,将该第一虚拟DOM文件中与该第一网页元素对应的虚拟DOM节点删除;
如果该差异元素信息包括该第二网页元素,在该第一虚拟DOM文件中创建与该第二网页元素对应的虚拟DOM节点;
如果该差异元素信息包括该第三网页元素,将该第一虚拟DOM文件中该第三网页元素对应的虚拟DOM节点的属性值调整为该第二网页中该第三网页元素对应的属性值,得到该第二网页对应的虚拟DOM文件。
可以理解的是,对于每一个第一页面元素、第二网页元素以及第三网页元素均需要分别执行以上相应的操作。
S105,将该第二虚拟DOM文件映射为该第二网页的真实DOM文件。
可以理解的是,由于浏览器需要基于真实的DOM树来加载并展现网页,而第二虚拟DOM文件中包含的虚拟DOM节点,每个虚拟DOM节点都是一个JS对象,因此,需要将第二虚拟DOM文件中各个JS对象转换为真实的DOM节点,以实现将第二虚拟DOM文件转换为真实DOM文件。
其中,将表征虚拟DOM节点的JS对象转换为真实DOM节点可以获取虚拟DOM节点中的节点标签,该节点标签用于表征该DOM节点对应的真实DOM节点,然后,虚拟DOM节点与真实DOM节点的映射关系,转换出该节点标签对应的真实DOM节点。
S106,基于该第二网页的真实DOM文件加载并展现该第二网页。
其中,真实DOM文件可以看成是一个DOM树,基于DOM树加载网页的过程可以采用现有的任意方式,本申请对此不加限制。
本申请的发明人经研究发现:现有的页面展现过程中,浏览器是直接根据网页的真实DOM树加载网页,在该过程中DOM元素的频繁创建和修改是最耗时的。这是因为:根据网页中包含的网页元素,每次向DOM树中创建了一个元素对应的DOM节点,浏览器就会依据当前已构建的DOM树加载一遍网页,然而,由于网页中包含的网页元素的数量较多,这样,浏览器在完全展现网页之前,需要多次频繁基于DOM树进行页面加载,从而造成使得整个页面加载过程耗时较长,效率较低。
而本申请在确定出待切换的第二网页之后,会先在内存中构建出该第二网页的虚拟DOM文件,并在得到第二网页对应的虚拟DOM文件之后,再将该第二网页对应的虚拟DOM文件转换为真实的DOM文件,这样,浏览器只需要基于最终转化出的真实DOM文件进行一次页面加载便可以完成该第二网页的加载,从而避免了多次加载页面所造成的复杂度以及耗时,有利于提高页面展现速度。
可选的,为了后续需要将第二网页切换为其他网页时,也能够较为快速的切换到该其他网页,在基于第二网页的真实DOM文件加载并展现第二网页之后,还可以在内存中缓存该第二虚拟DOM文件。
为了便于理解,如图2,其示出了本申请一种页面展现方法又一个实施例的流程示意图,本实施例的方法可以包括:
S201,在展现出的第一页面上检测到页面切换操作时,确定输入页面切换操作的用户。
S202,确定与该用户的用户权限以及该页面切换操作匹配的第二页面,并获取该第二页面的源代码。
S203,基于该第一页面的源代码以及第二页面的源代码,确定该第二页面与该第一页面中的差异元素信息。
其中,差异元素信息包括以下任意一种或者多种:
第一页面中具有且第二页面中不具有的第一网页元素;
第二网页中具有且第一页面中不具有的第二网页元素;
第二网页与第一网页中相同类型但属性值不同的第三网页元素;
S204,获取缓存的该第一网页的第一虚拟文档对象模型DOM文件。
其中,该第一虚拟DOM文件包括该第一网页中各个页面元素对应的虚拟DOM节点。
S205,如果该差异元素信息包括该第一页面元素,将该第一虚拟DOM文件中与该第一网页元素对应的虚拟DOM节点删除。
针对每个第一页面元素均需要执行该步骤S205。
以上步骤S201-205可以参见前面实施例的相关介绍,在此不再赘述。
S206,如果差异元素信息包括第二网页元素,从组件库中调用与第二网页元素对应的组件,并将调用的组件作为该第二网页元素对应的虚拟DOM节点添加到该第一虚拟DOM文件中。
其中,该组件库中包括多个组件,每个组件都是基于JS对象构建出的虚拟DOM节点。
在确定出第二网页元素之后,可以直接从组件库中调用与该第二网页元素对应的组件,该组件就是该第二网页元素对应的基于JS对象模拟的虚拟DOM节点,从而无需在实时基于JS对象模拟虚拟DOM节点,有利于提高创建该第二网页元素对应的虚拟DOM节点的便捷性。
S207,如果该差异元素信息包括该第三网页元素,将该第一虚拟DOM文件中该第三网页元素对应的虚拟DOM节点的属性值调整为该第二网页中该第三网页元素对应的属性值,得到该第二网页对应的虚拟DOM文件。
S208,将该第二虚拟DOM文件映射为该第二网页的真实DOM文件。
S209,基于该第二网页的真实DOM文件加载并展现该第二网页。
S210,在内存中缓存该第二虚拟DOM文件。
对应本申请的一种页面展现方法,本申请还提供了一种页面展现装置。
如图3,其示出了本申请一种页面展现装置一个实施例的组成结构示意图,本实施例的页面展现装置可以应用于浏览器,该装置可以包括:
源代码获取单元301,用于在展现出的第一页面上检测到页面切换操作时,获取待切换到的第二页面的源代码;
元素比较单元302,用于基于所述第一页面的源代码以及第二页面的源代码,确定所述第二页面与所述第一页面的差异元素信息,所述差异元素信息为所述第一页面以及第二页面中存在差异的元素的信息;
文件获取单元303,用于获取缓存的所述第一网页的第一虚拟文档对象模型DOM文件,所述第一虚拟DOM文件包括所述第一网页中各个页面元素对应的虚拟DOM节点;
文件调整单元304,用于依据所述差异元素信息,更新所述第一网页的第一虚拟DOM文件,以构建出所述第二网页对应的第二虚拟DOM文件,所述第二虚拟DOM文件包括所述第二网页中各个页面元素对应的虚拟DOM节点;
文件转换单元305,用于将所述第二虚拟DOM文件映射为所述第二网页的真实DOM文件;
页面展现单元306,用于基于所述第二网页的真实DOM文件加载并展现所述第二网页。
在一种可能的实现方式中,所述元素比较单元确定出的所述差异元素信息包括以下任意一种或者多种:
第一页面中具有且第二页面中不具有的第一网页元素;
第二网页中具有且第一页面中不具有的第二网页元素;
第二网页与第一网页中相同类型但属性值不同的第三网页元素;
所述文件调整单元,包括:
节点删除单元,用于如果所述差异元素信息包括所述第一页面元素,将所述第一虚拟DOM文件中与所述第一网页元素对应的虚拟DOM节点删除;
节点创建单元,用于如果所述差异元素信息包括所述第二网页元素,在所述第一虚拟DOM文件中创建与所述第二网页元素对应的虚拟DOM节点;
属性更改单元,用于如果所述差异元素信息包括所述第三网页元素,将所述第一虚拟DOM文件中所述第三网页元素对应的虚拟DOM节点的属性值调整为所述第二网页中所述第三网页元素对应的属性值,得到所述第二网页对应的虚拟DOM文件。
可选的,所述节点创建单元,包括:
节点创建子单元,用于如果所述差异元素信息包括所述第二网页元素,从组件库中调用与所述第二网页元素对应的组件,并将调用的组件作为所述第二网页元素对应的虚拟DOM节点添加到该第一虚拟DOM文件中。
在又一种可能的实现方式中,所述源代码获取单元,包括:
权限确定子单元,用于在展现出的第一页面上检测到页面切换操作时,确定输入所述页面切换操作的用户;
代码获取子单元,用于确定与所述用户的用户权限以及所述页面切换操作匹配的第二页面,并获取所述第二页面的源代码
可选的,本实施例的装置还可以包括:
文件缓存单元,用于在所述页面展现单元基于所述第二网页的真实DOM文件加载并展现所述第二网页之后,在内存中缓存所述第二虚拟DOM文件。
需要说明的是,本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。对于装置类实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
对所公开的实施例的上述说明,使本领域技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
以上仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
Claims (10)
1.一种页面展现方法,其特征在于,包括:
在展现出的第一页面上检测到页面切换操作时,获取待切换到的第二页面的源代码;
基于所述第一页面的源代码以及第二页面的源代码,确定所述第二页面与所述第一页面的差异元素信息,所述差异元素信息为所述第一页面以及第二页面中存在差异的元素的信息;
获取缓存的所述第一网页的第一虚拟文档对象模型DOM文件,所述第一虚拟DOM文件包括所述第一网页中各个页面元素对应的虚拟DOM节点;
依据所述差异元素信息,更新所述第一网页的第一虚拟DOM文件,以构建出所述第二网页对应的第二虚拟DOM文件,所述第二虚拟DOM文件包括所述第二网页中各个页面元素对应的虚拟DOM节点;
将所述第二虚拟DOM文件映射为所述第二网页的真实DOM文件;
基于所述第二网页的真实DOM文件加载并展现所述第二网页。
2.根据权利要求1所述的页面展现方法,其特征在于,所述差异元素信息包括以下任意一种或者多种:
第一页面中具有且第二页面中不具有的第一网页元素;
第二网页中具有且第一页面中不具有的第二网页元素;
第二网页与第一网页中相同类型但属性值不同的第三网页元素;
所述依据所述差异元素信息,更新所述第一网页的第一虚拟DOM文件,以构建出所述第二网页对应的第二虚拟DOM文件,包括:
如果所述差异元素信息包括所述第一页面元素,将所述第一虚拟DOM文件中与所述第一网页元素对应的虚拟DOM节点删除;
如果所述差异元素信息包括所述第二网页元素,在所述第一虚拟DOM文件中创建与所述第二网页元素对应的虚拟DOM节点;
如果所述差异元素信息包括所述第三网页元素,将所述第一虚拟DOM文件中所述第三网页元素对应的虚拟DOM节点的属性值调整为所述第二网页中所述第三网页元素对应的属性值,得到所述第二网页对应的虚拟DOM文件。
3.根据权利要求2所述的网页展现方法,其特征在于,所述如果所述差异元素信息包括所述第二网页元素,在所述第一虚拟DOM文件中创建与所述第二网页元素对应的虚拟DOM节点,包括:
如果所述差异元素信息包括所述第二网页元素,从组件库中调用与所述第二网页元素对应的组件,并将调用的组件作为所述第二网页元素对应的虚拟DOM节点添加到所述第一虚拟DOM文件中。
4.根据权利要求1所述的网页展现方法,其特征在于,所述在展现出的第一页面上检测到页面切换操作时,获取待切换到的第二页面的源代码,包括:
在展现出的第一页面上检测到页面切换操作时,确定输入所述页面切换操作的用户;
确定与所述用户的用户权限以及所述页面切换操作匹配的第二页面,并获取所述第二页面的源代码。
5.根据权利要求1所述的网页展现方法,其特征在于,在所述基于所述第二网页的真实DOM文件加载并展现所述第二网页之后,还包括:
在内存中缓存所述第二虚拟DOM文件。
6.一种页面展现装置,其特征在于,包括:
源代码获取单元,用于在展现出的第一页面上检测到页面切换操作时,获取待切换到的第二页面的源代码;
元素比较单元,用于基于所述第一页面的源代码以及第二页面的源代码,确定所述第二页面与所述第一页面的差异元素信息,所述差异元素信息为所述第一页面以及第二页面中存在差异的元素的信息;
文件获取单元,用于获取缓存的所述第一网页的第一虚拟文档对象模型DOM文件,所述第一虚拟DOM文件包括所述第一网页中各个页面元素对应的虚拟DOM节点;
文件调整单元,用于依据所述差异元素信息,更新所述第一网页的第一虚拟DOM文件,以构建出所述第二网页对应的第二虚拟DOM文件,所述第二虚拟DOM文件包括所述第二网页中各个页面元素对应的虚拟DOM节点;
文件转换单元,用于将所述第二虚拟DOM文件映射为所述第二网页的真实DOM文件;
页面展现单元,用于基于所述第二网页的真实DOM文件加载并展现所述第二网页。
7.根据权利要求6所述的页面展现装置,其特征在于,所述元素比较单元确定出的所述差异元素信息包括以下任意一种或者多种:
第一页面中具有且第二页面中不具有的第一网页元素;
第二网页中具有且第一页面中不具有的第二网页元素;
第二网页与第一网页中相同类型但属性值不同的第三网页元素;
所述文件调整单元,包括:
节点删除单元,用于如果所述差异元素信息包括所述第一页面元素,将所述第一虚拟DOM文件中与所述第一网页元素对应的虚拟DOM节点删除;
节点创建单元,用于如果所述差异元素信息包括所述第二网页元素,在所述第一虚拟DOM文件中创建与所述第二网页元素对应的虚拟DOM节点;
属性更改单元,用于如果所述差异元素信息包括所述第三网页元素,将所述第一虚拟DOM文件中所述第三网页元素对应的虚拟DOM节点的属性值调整为所述第二网页中所述第三网页元素对应的属性值,得到所述第二网页对应的虚拟DOM文件。
8.根据权利要求7所述的网页展现装置,其特征在于,所述节点创建单元,包括:
节点创建子单元,用于如果所述差异元素信息包括所述第二网页元素,从组件库中调用与所述第二网页元素对应的组件,并将调用的组件作为所述第二网页元素对应的虚拟DOM节点添加到所述第一虚拟DOM文件中。
9.根据权利要求6所述的网页展现装置,其特征在于,所述源代码获取单元,包括:
权限确定子单元,用于在展现出的第一页面上检测到页面切换操作时,确定输入所述页面切换操作的用户;
代码获取子单元,用于确定与所述用户的用户权限以及所述页面切换操作匹配的第二页面,并获取所述第二页面的源代码。
10.根据权利要求6所述的网页展现装置,其特征在于,还包括:
文件缓存单元,用于在所述页面展现单元基于所述第二网页的真实DOM文件加载并展现所述第二网页之后,在内存中缓存所述第二虚拟DOM文件。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910599173.2A CN110309461B (zh) | 2019-07-04 | 2019-07-04 | 页面展现方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910599173.2A CN110309461B (zh) | 2019-07-04 | 2019-07-04 | 页面展现方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110309461A true CN110309461A (zh) | 2019-10-08 |
CN110309461B CN110309461B (zh) | 2023-10-27 |
Family
ID=68078880
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910599173.2A Active CN110309461B (zh) | 2019-07-04 | 2019-07-04 | 页面展现方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110309461B (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110795444A (zh) * | 2019-10-25 | 2020-02-14 | 北京小米移动软件有限公司 | Dom数据更新方法、页面更新方法及装置 |
CN111064979A (zh) * | 2019-12-30 | 2020-04-24 | 广州市百果园网络科技有限公司 | 一种网页直播方法、装置、网页终端和存储介质 |
CN111078519A (zh) * | 2019-12-13 | 2020-04-28 | 杭州安恒信息技术股份有限公司 | 异常监控行为回溯的方法、装置和电子设备 |
CN111125597A (zh) * | 2019-12-18 | 2020-05-08 | 百度在线网络技术(北京)有限公司 | 网页加载方法、浏览器、电子设备及存储介质 |
CN111930379A (zh) * | 2020-08-11 | 2020-11-13 | 上海亿锎智能科技有限公司 | Web端投诉表单设计器的实现方法、装置和系统 |
CN112417344A (zh) * | 2021-01-25 | 2021-02-26 | 北京小米移动软件有限公司 | 渲染方法、装置、电子设备及存储介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20130227397A1 (en) * | 2012-02-24 | 2013-08-29 | Microsoft Corporation | Forming an instrumented text source document for generating a live web page |
CN103635897A (zh) * | 2011-06-23 | 2014-03-12 | 微软公司 | 对运行页面进行动态更新 |
CN104035753A (zh) * | 2013-03-04 | 2014-09-10 | 优视科技有限公司 | 一种双WebView展示定制页面的方法及系统 |
WO2016078479A1 (zh) * | 2014-11-17 | 2016-05-26 | 广州市动景计算机科技有限公司 | 网页变化监控方法及装置 |
CN108572819A (zh) * | 2017-12-21 | 2018-09-25 | 北京金山云网络技术有限公司 | 页面更新方法、装置、终端及计算机可读存储介质 |
-
2019
- 2019-07-04 CN CN201910599173.2A patent/CN110309461B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103635897A (zh) * | 2011-06-23 | 2014-03-12 | 微软公司 | 对运行页面进行动态更新 |
US20130227397A1 (en) * | 2012-02-24 | 2013-08-29 | Microsoft Corporation | Forming an instrumented text source document for generating a live web page |
CN104035753A (zh) * | 2013-03-04 | 2014-09-10 | 优视科技有限公司 | 一种双WebView展示定制页面的方法及系统 |
WO2016078479A1 (zh) * | 2014-11-17 | 2016-05-26 | 广州市动景计算机科技有限公司 | 网页变化监控方法及装置 |
CN108572819A (zh) * | 2017-12-21 | 2018-09-25 | 北京金山云网络技术有限公司 | 页面更新方法、装置、终端及计算机可读存储介质 |
Non-Patent Citations (2)
Title |
---|
周文琼等: "SaaS模式的离线应用研究与实现", 《计算机与数字工程》 * |
戴志诚等: "基于虚拟DOM的Web前端性能优化研究", 《计算机应用与软件》 * |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110795444A (zh) * | 2019-10-25 | 2020-02-14 | 北京小米移动软件有限公司 | Dom数据更新方法、页面更新方法及装置 |
CN111078519A (zh) * | 2019-12-13 | 2020-04-28 | 杭州安恒信息技术股份有限公司 | 异常监控行为回溯的方法、装置和电子设备 |
CN111125597A (zh) * | 2019-12-18 | 2020-05-08 | 百度在线网络技术(北京)有限公司 | 网页加载方法、浏览器、电子设备及存储介质 |
CN111125597B (zh) * | 2019-12-18 | 2023-10-27 | 百度在线网络技术(北京)有限公司 | 网页加载方法、浏览器、电子设备及存储介质 |
CN111064979A (zh) * | 2019-12-30 | 2020-04-24 | 广州市百果园网络科技有限公司 | 一种网页直播方法、装置、网页终端和存储介质 |
CN111064979B (zh) * | 2019-12-30 | 2023-02-28 | 广州市百果园网络科技有限公司 | 一种网页直播方法、装置、网页终端和存储介质 |
CN111930379A (zh) * | 2020-08-11 | 2020-11-13 | 上海亿锎智能科技有限公司 | Web端投诉表单设计器的实现方法、装置和系统 |
CN111930379B (zh) * | 2020-08-11 | 2021-07-06 | 上海亿锎智能科技有限公司 | Web端投诉表单设计器的实现方法、装置和系统 |
CN112417344A (zh) * | 2021-01-25 | 2021-02-26 | 北京小米移动软件有限公司 | 渲染方法、装置、电子设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN110309461B (zh) | 2023-10-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110309461A (zh) | 页面展现方法和装置 | |
CN105022750B (zh) | 资源文件加载方法和装置 | |
US7277890B2 (en) | Method of finding a search string in a document for viewing on a mobile communication device | |
CN103383687B (zh) | 一种页面处理方法和装置 | |
CN104572777B (zh) | 基于UIWebView组件的网页加载方法及装置 | |
CN109408699B (zh) | 一种同步缓存zTree树实现树节点快速检索的方法 | |
US20150082151A1 (en) | Page display method and device | |
CN108572819A (zh) | 页面更新方法、装置、终端及计算机可读存储介质 | |
CN107203555A (zh) | 页面加载处理方法及装置 | |
AU6732100A (en) | Database system | |
CN104601736A (zh) | 一种短url服务的实现方法及装置 | |
CN110334297A (zh) | 终端页面的加载方法、终端、服务器及存储介质 | |
CN111913705B (zh) | 一种基于差异更新算法的JavaScript模板实现方法 | |
CN105528452A (zh) | 一种页面数据的加载方法和系统 | |
CN107688568A (zh) | 基于网页访问行为记录的采集方法及装置 | |
CN107888659A (zh) | 用户请求的处理方法及系统 | |
CN107291913A (zh) | 超文本标记语言网页加载方法及装置 | |
CN107613040A (zh) | 一种域名系统 dns 服务器查询的方法和装置 | |
CN102163197B (zh) | 一种换肤方法、系统和装置 | |
CN107480072A (zh) | 基于关联模式的透明计算服务端缓存优化方法及系统 | |
CN106843899A (zh) | 一种基于Node.js平台的网页开发方法及装置 | |
CN103580991B (zh) | 一种邮件附件的上传方法和设备 | |
CN107408055B (zh) | 代码缓存系统 | |
CN104731817B (zh) | 一种网页展现方法和装置 | |
CN106933817A (zh) | 一种基于b/s结构的内容查询方法及设备、系统 |
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 |