CN108255952B - 数据加载方法、装置、存储介质及电子设备 - Google Patents
数据加载方法、装置、存储介质及电子设备 Download PDFInfo
- Publication number
- CN108255952B CN108255952B CN201711378619.6A CN201711378619A CN108255952B CN 108255952 B CN108255952 B CN 108255952B CN 201711378619 A CN201711378619 A CN 201711378619A CN 108255952 B CN108255952 B CN 108255952B
- Authority
- CN
- China
- Prior art keywords
- data
- node
- page
- target
- cache
- 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
Links
Images
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
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 Transfer Between Computers (AREA)
Abstract
本公开涉及一种数据加载方法、装置、存储介质及电子设备。所述方法包括:确定滚动条的滚动停止位置所在的目标数据分页;查询浏览器前端的缓存,以确定所述目标数据分页中的数据是否已被加载至所述缓存中;当确定所述目标数据分页中的数据已被加载至所述缓存中时,从所述缓存中获取所述数据并进行显示。这样,浏览器可以直接从前端的缓存中获取并显示所需的数据,无需频繁向后台请求,能够有效提升浏览器的数据加载速度。并且,在用户将滚动条滚动到任意位置停止时,浏览器可以快速加载出相应的数据,减少了用户等待的时间,提升用户体验。
Description
技术领域
本公开涉及信息领域,具体地,涉及一种数据加载方法、装置、存储介质及电子设备。
背景技术
目前,当用户通过浏览器(例如,手机浏览器、PC端浏览器)查询数据时,往往能够得到大量的查询结果,需要多页显示。在一些浏览器中,若用户需要查看排序在比较后面的查询结果,需要手动操作(例如,手动下拉、手动点击)以跳转页面至用户所需并加载相应数据。这样,需要用户多次进行操作,且无法保证显示速度,用户体验不佳。同时,用户的多次操作会向例如后台服务器多次发送请求,也会加重对浏览器及后台服务器的压力。
发明内容
本公开的目的是提供一种数据加载方法、装置、存储介质及电子设备,以提升数据加载速度。
为了实现上述目的,本公开提供一种数据加载方法。所述方法包括:确定滚动条的滚动停止位置所在的目标数据分页;查询浏览器前端的缓存,以确定所述目标数据分页中的数据是否已被加载至所述缓存中;当确定所述目标数据分页中的数据已被加载至所述缓存中时,从所述缓存中获取所述数据并进行显示。
可选地,所述浏览器前端的缓存中的数据以二叉树的形式进行存储。
可选地,所述二叉树中的每个节点分别关联一个数据分页组的标识,每个节点中存储有相对应的数据分页组中各分页的数据;所述查询浏览器前端的缓存,以确定所述目标数据分页中的数据是否已被加载至所述缓存中,包括:根据所述目标数据分页所属的数据分页组的标识查询所述二叉树;当在所述二叉树中查询到与所述目标数据分页所属的数据分页组的标识相关联的节点时,确定所述目标数据分页中的数据已被加载至所述缓存中;当在所述二叉树中未查询到与所述目标数据分页所属的数据分页组的标识相关联的节点时,确定所述目标数据分页中的数据尚未被加载至所述缓存中。
可选地,所述方法还包括:当确定所述目标数据分页中的数据尚未被加载至所述缓存中时,向后台服务器发送数据获取指令,所述数据获取指令用于请求获取所述目标数据分页所属的数据分页组中各分页的数据;接收所述后台服务器发送的所述数据分页组中各分页的数据;显示所述目标数据分页中的数据;将接收到的所述数据分页组中各分页的数据存储在所述浏览器前端的缓存中。
可选地,所述浏览器前端的缓存中的数据以二叉树的形式进行存储,其中,所述二叉树中的每个节点分别对应一个数据分页组的标识,每个节点中存储有相对应的数据分页组中各分页的数据;所述将接收到的所述数据分页组中各分页的数据存储在所述浏览器前端的缓存中,包括:创建一新节点;确定所述目标数据分页所属的数据分页组的标识,并将所创建的新节点与所述目标数据分页所属的数据分页组的标识相关联;从所述二叉树中确定其所关联的标识与所述新节点所关联的标识最接近的目标节点;当所述新节点所关联的标识大于所述目标节点所关联的标识、且所述目标节点下没有右子节点时,将所述新节点作为所述目标节点的右子节点;当所述新节点所关联的标识大于所述目标节点所关联的标识、且所述目标节点下有右子节点时,将所述新节点作为所述目标节点的新右子节点,并将所述目标节点的原右子节点作为所述新节点的右子节点;当所述新节点所关联的标识小于所述目标节点所关联的标识、且所述目标节点下没有左子节点时,将所述新节点作为所述目标节点的左子节点;当所述新节点所关联的标识小于所述目标节点所关联的标识、且所述目标节点下有左子节点时,将所述新节点作为所述目标节点的新左子节点,并将所述目标节点的原左子节点作为所述新节点的左子节点。
可选地,在所述确定滚动条的滚动停止位置所在的目标数据分页的步骤之前,所述方法还包括:接收数据查询指令;将所述数据查询指令发送至后台服务器;接收所述后台服务器发送的符合所述数据查询指令的第一数据分页组中各分页的数据,其中,所述后台服务器将符合所述数据查询指令的全部数据按照优先级由大到小的顺序进行排序,并根据预设的分页大小、按照数据排列由前到后的顺序,将符合所述数据查询指令的数据划分成多个数据分页,其中,所述预设的分页大小表示一个数据分页中所包含的数据量,之后再按照数据分页排列由前到后的顺序对所述多个数据分页进行分组,形成多个数据分页组,所述第一数据分页组为所述多个数据分页组中排列在首位的数据分页组;显示第一数据分页中的数据,其中,所述第一数据分页为所述第一数据分页组中排列在首位的数据分页;将接收到的所述第一数据分页组中各分页的数据存储在所述浏览器前端的缓存中。
可选地,在所述显示第一数据分页中的数据的步骤之前,并在所述确定滚动条的滚动停止位置所在的目标数据分页的步骤之前,所述方法还包括:当接收到针对滚动条的滚动指令时,保持当前显示的数据不变,直到滚动条停止滚动为止。
根据本公开的第二方面,提供一种数据加载装置。所述装置包括:确定模块,用于确定滚动条的滚动停止位置所在的目标数据分页;查询模块,用于查询浏览器前端的缓存,以确定所述目标数据分页中的数据是否已被加载至所述缓存中;获取模块,用于当确定所述目标数据分页中的数据已被加载至所述缓存中时,从所述缓存中获取所述数据并进行显示。
可选地,所述浏览器前端的缓存中的数据以二叉树的形式存储。
可选地,所述二叉树中的每个节点分别关联一个数据分页组的标识,每个节点中存储有相对应的数据分页组中各分页的数据;所述查询模块包括:查询子模块,用于根据所述目标数据分页所属的数据分页组的标识查询所述二叉树;第一确定子模块,用于当在所述二叉树中查询到与所述目标数据分页所属的数据分页组的标识相关联的节点时,确定所述目标数据分页中的数据已被加载至所述缓存中;当在所述二叉树中未查询到与所述目标数据分页所属的数据分页组的标识相关联的节点时,确定所述目标数据分页中的数据尚未被加载至所述缓存中。
可选地,所述装置还包括:第一发送模块,用于当确定所述目标数据分页中的数据尚未被加载至所述缓存中时,向后台服务器发送数据获取指令,所述数据获取指令用于请求获取所述目标数据分页所属的数据分页组中各分页的数据;第一接收模块,用于接收所述后台服务器发送的所述数据分页组中各分页的数据;第一显示模块,用于显示所述目标数据分页中的数据;第一存储模块,用于将接收到的所述数据分页组中各分页的数据存储在所述浏览器前端的缓存中。
可选地,所述浏览器前端的缓存中的数据以二叉树的形式进行存储,其中,所述二叉树中的每个节点分别对应一个数据分页组的标识,每个节点中存储有相对应的数据分页组中各分页的数据;所述第一存储模块包括:节点创建子模块,用于创建一新节点;第二确定子模块,用于确定所述目标数据分页所属的数据分页组的标识,并将所创建的新节点与所述目标数据分页所属的数据分页组的标识相关联;第三确定子模块,用于从所述二叉树中确定其所关联的标识与所述新节点所关联的标识最接近的目标节点;所述第一存储模块用于当所述新节点所关联的标识大于所述目标节点所关联的标识、且所述目标节点下没有右子节点时,将所述新节点作为所述目标节点的右子节点;当所述新节点所关联的标识大于所述目标节点所关联的标识、且所述目标节点下有右子节点时,将所述新节点作为所述目标节点的新右子节点,并将所述目标节点的原右子节点作为所述新节点的右子节点;当所述新节点所关联的标识小于所述目标节点所关联的标识、且所述目标节点下没有左子节点时,将所述新节点作为所述目标节点的左子节点;当所述新节点所关联的标识小于所述目标节点所关联的标识、且所述目标节点下有左子节点时,将所述新节点作为所述目标节点的新左子节点,并将所述目标节点的原左子节点作为所述新节点的左子节点。
可选地,所述装置还包括:第二接收模块,用于在所述确定模块确定滚动条的滚动停止位置所在的目标数据分页之前,接收数据查询指令;第二发送模块,用于将所述数据查询指令发送至后台服务器;第三接收模块,用于接收所述后台服务器发送的符合所述数据查询指令的第一数据分页组中各分页的数据,其中,所述后台服务器将符合所述数据查询指令的全部数据按照优先级由大到小的顺序进行排序,并根据预设的分页大小、按照数据排列由前到后的顺序,将符合所述数据查询指令的数据划分成多个数据分页,其中,所述预设的分页大小表示一个数据分页中所包含的数据量,之后再按照数据分页排列由前到后的顺序对所述多个数据分页进行分组,形成多个数据分页组,所述第一数据分页组为所述多个数据分页组中排列在首位的数据分页组;第二显示模块,用于显示第一数据分页中的数据,其中,所述第一数据分页为所述第一数据分页组中排列在首位的数据分页;第二存储模块,用于将接收到的所述第一数据分页组中各分页的数据存储在所述浏览器前端的缓存中。
可选地,所述装置还用于在所述第二显示模块显示第一数据分页中的数据之前,并在所述确定模块确定滚动条的滚动停止位置所在的目标数据分页之前,当接收到针对滚动条的滚动指令时,保持当前显示的数据不变,直到滚动条停止滚动为止。
根据本公开的第三方面,提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现本公开第一方面所提供的方法的步骤。
根据本公开的第四方面,提供一种电子设备,包括:本公开第三方面所提供的计算机可读存储介质;以及一个或者多个处理器,用于执行所述计算机可读存储介质中的程序。
通过上述技术方案,浏览器可以直接从前端的缓存中获取并显示所需的数据,无需频繁向后台请求,能够有效提升浏览器的数据加载速度。并且,在用户将滚动条滚动到任意位置停止时,浏览器可以快速加载出相应的数据,减少了用户等待的时间,提升用户体验。
本公开的其他特征和优点将在随后的具体实施方式部分予以详细说明。
附图说明
附图是用来提供对本公开的进一步理解,并且构成说明书的一部分,与下面的具体实施方式一起用于解释本公开,但并不构成对本公开的限制。在附图中:
图1是根据本公开的一种实施方式提供的数据加载方法的流程图。
图2A是根据本公开的另一种实施方式提供的数据加载方法的流程图。
图2B是根据本公开提供的数据加载方法中,将数据存储在浏览器前端的缓存的一种示例性实现方式的示意图。
图3根据本公开提供的数据加载方法中,查询浏览器前端的缓存的步骤的一种示例性实现方式的流程图。
图4是根据本公开的另一种实施方式提供的数据加载方法的流程图。
图5A根据本公开提供的数据加载方法中,将接收到的数据分页组中各分页的数据存储在浏览器前端的缓存中的步骤的一种示例性实现方式的流程图。
图5B是根据本公开提供的数据加载方法中,将数据存储在浏览器前端的缓存的另一种示例性实现方式的示意图。
图5C是根据本公开提供的数据加载方法中,将数据存储在浏览器前端的缓存的另一种示例性实现方式的示意图。
图5D是根据本公开提供的数据加载方法中,将数据存储在浏览器前端的缓存的另一种示例性实现方式的示意图。
图5E是根据本公开提供的数据加载方法中,将数据存储在浏览器前端的缓存的另一种示例性实现方式的示意图。
图5F是根据本公开提供的数据加载方法中,将数据存储在浏览器前端的缓存的另一种示例性实现方式的示意图。
图6是根据本公开的一种实施方式提供的数据加载装置的框图。
图7是根据本公开的另一种实施方式提供的数据加载装置的框图。
图8是根据本公开的另一种实施方式提供的数据加载装置的框图。
图9是根据本公开的另一种实施方式提供的数据加载装置的框图。
图10是根据本公开的另一种实施方式提供的数据加载装置的框图。
图11是根据一示例性实施例示出的一种电子设备的框图。
具体实施方式
以下结合附图对本公开的具体实施方式进行详细说明。应当理解的是,此处所描述的具体实施方式仅用于说明和解释本公开,并不用于限制本公开。
图1是根据本公开的一种实施方式提供的数据加载方法的流程图。如图1所示,该方法可以包括以下步骤。
在步骤101中,确定滚动条的滚动停止位置所在的目标数据分页。
当用户通过例如手机浏览器、PC端浏览器等进行查询时,可以通过拉动滚动条的方式切换查询结果显示页面,查询显示结果可以与滚动条停止的位置有关。示例地,可以通过JavaScript获取滚动条停止时所在的位置。
在一种实施方式中,与滚动条的滚动位置相对应的数据可以属于相应数据分页组的相应数据分页。如图2A所示,对于数据分页与数据分页组的划分,在步骤101之前,本公开所提供的方法还可以包括以下步骤。
在步骤201中,接收数据查询指令。
示例地,数据查询指令可以用于确定所需的数据。
在步骤202中,将数据查询指令发送至后台服务器。
浏览器在接收到数据查询指令后,可以将该数据查询指令发送至后台服务器,以获得查询结果。
后台服务器在接收到数据查询指令后,可以确定符合该数据查询指令的全部数据,并可以按照优先级由大到小(例如,相关性、热度等由高到低)的顺序进行排序。后台服务器可以根据预设的分页大小、按照数据排列由前到后的顺序,将符合数据查询指令的数据划分成多个数据分页。示例地,上述每个数据分页中的数据不重叠。预设的分页大小可以表示一个数据分页中所包含的数据量。示例地,预设的分页大小可以与浏览器的高度有关。例如,若浏览器高度为200PX(Pixel,像素),每条数据占高10PX,那么该浏览器每次可显示20条数据,也就是一个数据分页可以包含20条数据。在划分多个数据分页后,可以按照数据分页排列由前到后的顺序对多个数据分页进行分组,进而形成多个数据分页组。其中,每个数据分页组中的数据分页不重叠。示例地,若符合数据查询指令的数据共有1000条、且预设的分页大小为每个分页20条数据,那么在划分数据页时,可以将第1~20条数据划分为第1个数据分页,将第21~40条数据划分为第2个数据分页,以此类推,将第981~1000条数据划分为第50个数据分页。而在划分数据分页组时,若5个数据分页划分为一个数据分页组,那么,第1个数据分页到第5个数据分页可以为第1个数据分页组,第6个数据分页到第10个数据分页可以为第2个数据分页组,以此类推,第45个数据分页到第50个数据分页可以为第10个数据分页组。每个数据分页组内所包含的数据分页数可以相同,也可以不同。示例地,若当前共有500个数据分页,可以分为100个数据分页组,每个数据分页组包含5个数据分页。再例如,若当前共有20个数据分页,可以分为3个数据分页组,分别包含5、10、5个数据分页。另外,每个数据分页组可以对应一个数据分页组的标识,且每一个数据分页组的标识能够唯一代表该数据分页组。示例地,该标识可以是数据分页组中某一数据分页(例如,数据分页组所包含的最后一个数据分页)的序号;再例如,该标识可以为数据分页组中所包含的各个数据分页的序号组合。可选地,对于同一数据查询指令所对应的数据,对数据分页组的标识的确定方式应该是统一的,以保证数据获取的准确性。
在步骤203中,接收后台服务器发送的符合数据查询指令的第一数据分页组中各分页的数据。其中,第一数据分页组可以为多个数据分页组中排列在首位的数据分页组。
示例地,若共有3个数据分页组,第1个数据分页组中包含第1~第10数据分页,第2个数据分页组中包含第11~第20数据分页,第3个数据分页组中包含第21~第30数据分页,那么,第1个数据分页组即为上述第一数据分页组。
在步骤204中,显示第一数据分页中的数据。
其中,第一数据分页为第一数据分页组中排列在首位的数据分页。当用户输入查询条件进行查询后,在用户主动拉动滚动条之前,滚动条一般会停留在浏览器滚动条所在区域的顶端,也就是与第一数据分页相对应的滚动条位置,因此,可以直接显示第一数据分页中的数据,以便用户及时获取到相应的数据,进而可以省去重复请求数据的时间。
在步骤205中,将接收到的第一数据分页组中各分页的数据存储在浏览器前端的缓存中。
浏览器在接收到后台服务器发送的符合数据查询指令的第一数据分页组中各分页的数据后,可以将该第一数据分页组中各分页的数据存储在浏览器前端的缓存中。这样,当浏览器再次请求相应的数据时,可以直接从浏览器前端的缓存获取,而不必再向后台服务器请求,可以有效提升浏览器的数据加载速度。
在一种实施方式中,为了便于后续查找浏览器前端的缓存中已存储的数据,可以将各数据分页组中各分页的数据以二叉树的形式进行存储。其中,每个节点可以存储有相对应的数据分页组中各分页的数据。对上述第一数据分页组中各分页的数据的存储,也就是构建上述二叉树的初始过程,即创建二叉树的第一个节点。示例地,若共有500个数据分页、每10个数据分页属于一个数据分页组(第1~10个数据分页为第1数据分页组,第11~20个数据分页为第2数据分页组,…,第491~500个数据分页为第50数据分页组)、且每个数据分页组的标识为该数据分页组中的最后一个数据分页所对应的序号(10,20,…,500),对第一数据分页组中各分页的存储可以如图2B所示,其中,节点10对应的数据分页组的标识为10,节点10中存储有第一数据分页组中各分页的数据。
回到步骤101,根据滚动条的滚动停止位置,可以确定与该滚动停止位置相对应的数据分页,即目标数据分页。示例地,若浏览器高度为200PX,滚动条当前停止位置的高度为78143PX,那么根据等式78413/200=390.715可以确定与滚动条位置对应的数据应该属于第391个数据分页,即第391个数据分页为目标数据分页。并且,每个数据分页应属于唯一的数据分页组,该数据分页组可以在确定目标数据分页之前划分,也可以在确定目标数据分页后划分。根据上文的示例,若共有500个数据分页、每10个数据分页属于一个数据分页组(第1~10个数据分页为第1数据分页组,第11~20个数据分页为第2数据分页组,…,第491~500个数据分页为第50数据分页组)、且每个数据分页组的标识为该数据分页组中的最后一个数据分页所对应的序号(10,20,…,500),那么该目标数据分页(第391个数据分页)属于第40数据分页组,且对应的数据分页组标识为400。
在步骤102中,查询浏览器前端的缓存,以确定目标数据分页的数据是否已被加载至缓存中。
在确定目标数据分页后,可以首先查询浏览器前端的缓存,以确定浏览器前端的缓存中是否存储有目标数据分页的数据。在一种实施方式中,浏览器前端的缓存中的数据可以是以二叉树的形式存储的。在这种实施方式中,已存储的二叉树中的每个节点分别关联一个数据分页组的标识,每个节点中存储有相对应的数据分页组中各分页的数据。如图3所示,步骤102可以包括以下步骤。
在步骤301中,根据目标数据分页所属的数据分页组的标识查询二叉树。
在确定目标数据分页后,可以确定该目标数据分页所属的数据分页组,进而可以确定目标数据分页所属的数据分页组的标识。由上所述,二叉树中的每个节点分别关联一个数据分页组的标识,根据目标数据分页所属的数据分页组的标识,可以对二叉树进行查询。查询二叉树的方式为本领域公知常识,本领域相关技术人员可以得到,在此不进行详细描述。
在步骤302中,当在二叉树中查询到与目标数据分页所属的数据分页组的标识相关联的节点时,确定目标数据分页中的数据已被加载至缓存中。
在步骤303中,当在二叉树中未查询到与目标数据分页所属的数据分页组的标识相关联的节点时,确定目标数据分页中的数据尚未被加载至缓存中。
回到图1,在步骤103中,当确定目标数据分页中的数据已被加载至缓存中时,从缓存中获取数据并进行显示。
通过上述方案,浏览器可以直接从前端的缓存中获取并显示所需的数据,无需频繁向后台请求,能够有效提升浏览器的数据加载速度。并且,在用户将滚动条滚动到任意位置停止时,浏览器可以快速加载出相应的数据,减少了用户等待的时间,提升用户体验。
另外,对于目标数据分页中的数据尚未被加载至缓存中的情况,如图4所示,本公开所提供的方法还可以包括以下步骤。
在步骤401中,当确定目标数据分页中的数据尚未被加载至缓存中时,向后台服务器发送数据获取指令。
该数据获取指令可以用于请求获取目标数据分页所属的数据分页组中各分页的数据。当确定浏览器前端的缓存中不存在目标数据分页中的数据时,可以确定该目标数据分页所属的数据分页组中各分页的数据还未被存储到浏览器前端的缓存中。因此,需要向后台服务器发送数据获取指令,以获取该目标数据分页所属的数据分页组中各分页的数据。
在步骤402中,接收后台服务器发送的数据分页组中各分页的数据。
后台服务器在接收到数据获取指令后,根据目标数据分页所属的数据分页组,可以将该数据分页组中各分页的数据发送至浏览器,浏览器可以对其进行接收。
在步骤403中,显示目标数据分页中的数据。
浏览器接收到数据分页组中各分页的数据后,从其中获取目标数据分页中的数据并进行显示,以便用户查看。
在步骤404中,将接收到的数据分页组中各分页的数据存储在浏览器前端的缓存中。
浏览器在接收到上述数据分页组中各分页的数据后,可以将其存储在浏览器前端的缓存中,以便在后续需要相应的数据时,直接从浏览器前端的缓存中获取,而不必再次请求后台服务器。
在一种实施方式中,如图5A所示,步骤404可以包括以下步骤。
在步骤501中,创建一新节点。
该新节点为浏览器前端的缓存中相应的二叉树的节点,并且该新节点将会存储上述接收到的数据分页组中各分页的数据。
在步骤502中,确定目标数据分页所属的数据分页组的标识,并将所创建的新节点与目标数据分页所属的数据分页组的标识相关联。
根据目标数据分页所属的数据分页组可以确定对应的标识,从而可以将创建的新节点与目标数据分页所属的数据分页组的标识相关联,以便后续的数据存储及数据查询。由上文所述,若目标数据分页为第391个数据分页,属于第40数据分页组,且对应的数据分页组标识为400,那么创建的新节点所关联的标识为400。
在步骤503中,从二叉树中确定其所关联的标识与新节点所关联的标识最接近的目标节点。
根据与新节点关联的数据分页组的标识,在二叉树中查找最接近的标识,并将该标识所关联的节点确定为目标节点。示例地,若每个数据分页组包含10个数据分页、且数据分页组的标识为该数据分页组包含的最后一个数据分页所对应的序号、且二叉树存储有节点390(含数据分页381~390)和节点420(含数据分页411~420),那么当新节点所关联的标识为400时,可以确定目标节点为节点390。另外,若存在多个符合要求的节点(其关联的标识与新节点所关联的标识接近程度相同),那么可以从其中任选一个节点作为目标节点。
在步骤504中,根据新节点所关联的标识与目标节点所关联的标识,对新节点进行存储。
在一种情况中,当新节点所关联的标识大于目标节点所关联的标识、且目标节点下没有右子节点时,将新节点作为目标节点的右子节点。示例地,针对于图2B中所构建的二叉树,若新节点所关联的标识为300,当前二叉树中只存在节点10,因此确定节点10为目标节点,可得新节点所关联的标识大于目标节点所关联的标识,并且目标节点下没有右子节点,因此可以将新节点作为目标节点的右子节点,如图5B所示。同样的,若新节点所关联的标识为490,针对于图5B所示的二叉树,构建的新二叉树可以如图5C所示。
在另一种情况中,当新节点所关联的标识大于目标节点所关联的标识、且目标节点下有右子节点时,将新节点作为目标节点的新右子节点,并将目标节点的原右子节点作为新节点的右子节点。示例地,针对于图5C中所构建的二叉树,若新节点所关联的标识为390,可以确定目标节点为节点300,可知新节点所关联的标识大于目标节点所关联的标识,而此时节点300下有右子节点(节点490),因此可以将新节点(节点390)作为目标节点(节点300)的新右子节点,并将目标节点(节点300)的原右子节点(节点490)作为新节点(节点390)的右子节点,如图5D所示。
在另一种情况中,当新节点所关联的标识小于目标节点所关联的标识、且目标节点下没有左子节点时,将新节点作为目标节点的左子节点。示例地,针对于图5D中所构建的二叉树,若新节点所关联的标识为350,可以确定目标节点为节点390,新节点所关联的标识小于目标节点所关联的标识,而此时目标节点(节点390)下没有左子节点,因此可以将新节点(节点350)作为目标节点的的左子节点,如图5E所示。
在另一种情况中,当新节点所关联的标识小于目标节点所关联的标识、且目标节点下有左子节点时,将新节点作为目标节点的新左子节点,并将目标节点的原左子节点作为新节点的左子节点。示例地,针对于图5E中所构建的二叉树,若新节点所关联的标识为380,可以确定目标节点为390,新节点所关联的标识小于目标节点所关联的标识,此时目标节点(节点390)下有左子节点,因此可以将新节点作为目标节点(节点390)的新左子节点,并将目标节点(节点390)的原左子节点(节点350)作为新节点的左子节点,如图5F所示。
这样存储的二叉树任意节点的左子节点所关联的标识总是小于该节点的右子节点所关联的标识,便于数据查询和数据存储。
另外,本公开所提供的方法还可以包括以下步骤:当接收到针对滚动条的滚动指令时,保持当前显示的数据不变,直到滚动条停止滚动为止。
由于滚动条在滚动过程中无法确定滚动条的最终停止位置,因此可以保持滚动条滚动前所显示的数据不变,直到滚动条停止滚动,并在滚动条停止滚动后,执行上文所述的相关步骤。
图6是根据本公开的一种实施方式提供的数据加载装置的框图。如图6所示,所述600装置包括:确定模块601,用于确定滚动条的滚动停止位置所在的目标数据分页;查询模块602,用于查询浏览器前端的缓存,以确定所述目标数据分页中的数据是否已被加载至所述缓存中;获取模块603,用于当确定所述目标数据分页中的数据已被加载至所述缓存中时,从所述缓存中获取所述数据并进行显示。
可选地,所述浏览器前端的缓存中的数据以二叉树的形式存储。
图7是根据本公开的另一种实施方式提供的数据加载装置的框图。所述二叉树中的每个节点分别关联一个数据分页组的标识,每个节点中存储有相对应的数据分页组中各分页的数据;如图7所示,所述查询模块602包括:查询子模块701,用于根据所述目标数据分页所属的数据分页组的标识查询所述二叉树;第一确定子模块702,用于当在所述二叉树中查询到与所述目标数据分页所属的数据分页组的标识相关联的节点时,确定所述目标数据分页中的数据已被加载至所述缓存中;当在所述二叉树中未查询到与所述目标数据分页所属的数据分页组的标识相关联的节点时,确定所述目标数据分页中的数据尚未被加载至所述缓存中。
图8是根据本公开的另一种实施方式提供的数据加载装置的框图。如图8所示,所述装置600还包括:第一发送模块801,用于当确定所述目标数据分页中的数据尚未被加载至所述缓存中时,向后台服务器发送数据获取指令,所述数据获取指令用于请求获取所述目标数据分页所属的数据分页组中各分页的数据;第一接收模块802,用于接收所述后台服务器发送的所述数据分页组中各分页的数据;第一显示模块803,用于显示所述目标数据分页中的数据;第一存储模块804,用于将接收到的所述数据分页组中各分页的数据存储在所述浏览器前端的缓存中。
图9是根据本公开的另一种实施方式提供的数据加载装置的框图。所述浏览器前端的缓存中的数据以二叉树的形式进行存储,其中,所述二叉树中的每个节点分别对应一个数据分页组的标识,每个节点中存储有相对应的数据分页组中各分页的数据;如图9所示,所述第一存储模块804包括:节点创建子模块901,用于创建一新节点;第二确定子模块902,用于确定所述目标数据分页所属的数据分页组的标识,并将所创建的新节点与所述目标数据分页所属的数据分页组的标识相关联;第三确定子模块903,用于从所述二叉树中确定其所关联的标识与所述新节点所关联的标识最接近的目标节点;所述第一存储模块用于当所述新节点所关联的标识大于所述目标节点所关联的标识、且所述目标节点下没有右子节点时,将所述新节点作为所述目标节点的右子节点;当所述新节点所关联的标识大于所述目标节点所关联的标识、且所述目标节点下有右子节点时,将所述新节点作为所述目标节点的新右子节点,并将所述目标节点的原右子节点作为所述新节点的右子节点;当所述新节点所关联的标识小于所述目标节点所关联的标识、且所述目标节点下没有左子节点时,将所述新节点作为所述目标节点的左子节点;当所述新节点所关联的标识小于所述目标节点所关联的标识、且所述目标节点下有左子节点时,将所述新节点作为所述目标节点的新左子节点,并将所述目标节点的原左子节点作为所述新节点的左子节点。
图10是根据本公开的另一种实施方式提供的数据加载装置的框图。如图10所示,所述装置600还包括:第二接收模块1001,用于在所述确定模块确定滚动条的滚动停止位置所在的目标数据分页之前,接收数据查询指令;第二发送模块1002,用于将所述数据查询指令发送至后台服务器;第三接收模块1003,用于接收所述后台服务器发送的符合所述数据查询指令的第一数据分页组中各分页的数据,其中,所述后台服务器将符合所述数据查询指令的全部数据按照优先级由大到小的顺序进行排序,并根据预设的分页大小、按照数据排列由前到后的顺序,将符合所述数据查询指令的数据划分成多个数据分页,其中,所述预设的分页大小表示一个数据分页中所包含的数据量,之后再按照数据分页排列由前到后的顺序对所述多个数据分页进行分组,形成多个数据分页组,所述第一数据分页组为所述多个数据分页组中排列在首位的数据分页组;第二显示模块1004,用于显示第一数据分页中的数据,其中,所述第一数据分页为所述第一数据分页组中排列在首位的数据分页;第二存储模块1005,用于将接收到的所述第一数据分页组中各分页的数据存储在所述浏览器前端的缓存中。
可选地,所述装置还用于在所述第二显示模块1004显示第一数据分页中的数据之前,并在所述确定模块601确定滚动条的滚动停止位置所在的目标数据分页之前,当接收到针对滚动条的滚动指令时,保持当前显示的数据不变,直到滚动条停止滚动为止。
关于上述实施例中的装置,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。
本公开还提供一种计算机可读存储介质,其上存储有计算机程序指令,该程序指令被处理器执行时实现本公开提供的数据加载方法的步骤。
图11是根据一示例性实施例示出的一种电子设备1100的框图。如图11所示,该电子设备1100可以包括:处理器1101,存储器1102,多媒体组件1103,输入/输出(I/O)接口1104,以及通信组件1105。
其中,处理器1101用于控制该电子设备1100的整体操作,以完成上述的数据加载方法中的全部或部分步骤。存储器1102用于存储各种类型的数据以支持在该电子设备1100的操作,这些数据例如可以包括用于在该电子设备1100上操作的任何应用程序或方法的指令,以及应用程序相关的数据,例如联系人数据、收发的消息、图片、音频、视频等等。该存储器1102可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,例如静态随机存取存储器(Static Random Access Memory,简称SRAM),电可擦除可编程只读存储器(Electrically Erasable Programmable Read-Only Memory,简称EEPROM),可擦除可编程只读存储器(Erasable Programmable Read-Only Memory,简称EPROM),可编程只读存储器(Programmable Read-Only Memory,简称PROM),只读存储器(Read-Only Memory,简称ROM),磁存储器,快闪存储器,磁盘或光盘。多媒体组件1103可以包括屏幕和音频组件。其中屏幕例如可以是触摸屏,音频组件用于输出和/或输入音频信号。例如,音频组件可以包括一个麦克风,麦克风用于接收外部音频信号。所接收的音频信号可以被进一步存储在存储器1102或通过通信组件1105发送。音频组件还包括至少一个扬声器,用于输出音频信号。I/O接口1104为处理器1101和其他接口模块之间提供接口,上述其他接口模块可以是键盘,鼠标,按钮等。这些按钮可以是虚拟按钮或者实体按钮。通信组件1105用于该电子设备1100与其他设备之间进行有线或无线通信。无线通信,例如Wi-Fi,蓝牙,近场通信(Near FieldCommunication,简称NFC),2G、3G或4G,或它们中的一种或几种的组合,因此相应的该通信组件1105可以包括:Wi-Fi模块,蓝牙模块,NFC模块。
在一示例性实施例中,电子设备1100可以被一个或多个应用专用集成电路(Application Specific Integrated Circuit,简称ASIC)、数字信号处理器(DigitalSignal Processor,简称DSP)、数字信号处理设备(Digital Signal Processing Device,简称DSPD)、可编程逻辑器件(Programmable Logic Device,简称PLD)、现场可编程门阵列(Field Programmable Gate Array,简称FPGA)、控制器、微控制器、微处理器或其他电子元件实现,用于执行上述的数据加载方法。
在另一示例性实施例中,还提供了一种包括程序指令的计算机可读存储介质,例如包括程序指令的存储器1102,上述程序指令可由电子设备1100的处理器1101执行以完成上述的数据加载方法。
以上结合附图详细描述了本公开的优选实施方式,但是,本公开并不限于上述实施方式中的具体细节,在本公开的技术构思范围内,可以对本公开的技术方案进行多种简单变型,这些简单变型均属于本公开的保护范围。
另外需要说明的是,在上述具体实施方式中所描述的各个具体技术特征,在不矛盾的情况下,可以通过任何合适的方式进行组合。为了避免不必要的重复,本公开对各种可能的组合方式不再另行说明。
此外,本公开的各种不同的实施方式之间也可以进行任意组合,只要其不违背本公开的思想,其同样应当视为本公开所公开的内容。
Claims (8)
1.一种数据加载方法,其特征在于,所述方法包括:
确定滚动条的滚动停止位置所在的目标数据分页;
查询浏览器前端的缓存,以确定所述目标数据分页中的数据是否已被加载至所述缓存中;
当确定所述目标数据分页中的数据已被加载至所述缓存中时,从所述缓存中获取所述数据并进行显示;
所述方法还包括:
当确定所述目标数据分页中的数据尚未被加载至所述缓存中时,向后台服务器发送数据获取指令,所述数据获取指令用于请求获取所述目标数据分页所属的数据分页组中各分页的数据;
接收所述后台服务器发送的所述数据分页组中各分页的数据;
显示所述目标数据分页中的数据;
将接收到的所述数据分页组中各分页的数据存储在所述浏览器前端的缓存中;
其中,所述浏览器前端的缓存中的数据以二叉树的形式进行存储,所述二叉树中的每个节点分别对应一个数据分页组的标识,每个节点中存储有相对应的数据分页组中各分页的数据,所述将接收到的所述数据分页组中各分页的数据存储在所述浏览器前端的缓存中,包括:
创建一新节点;
确定所述目标数据分页所属的数据分页组的标识,并将所创建的新节点与所述目标数据分页所属的数据分页组的标识相关联;
从所述二叉树中确定其所关联的标识与所述新节点所关联的标识最接近的目标节点;
当所述新节点所关联的标识大于所述目标节点所关联的标识、且所述目标节点下没有右子节点时,将所述新节点作为所述目标节点的右子节点。
2.根据权利要求1所述的方法,其特征在于,所述二叉树中的每个节点分别关联一个数据分页组的标识,每个节点中存储有相对应的数据分页组中各分页的数据;
所述查询浏览器前端的缓存,以确定所述目标数据分页中的数据是否已被加载至所述缓存中,包括:
根据所述目标数据分页所属的数据分页组的标识查询所述二叉树;
当在所述二叉树中查询到与所述目标数据分页所属的数据分页组的标识相关联的节点时,确定所述目标数据分页中的数据已被加载至所述缓存中;
当在所述二叉树中未查询到与所述目标数据分页所属的数据分页组的标识相关联的节点时,确定所述目标数据分页中的数据尚未被加载至所述缓存中。
3.根据权利要求1所述的方法,其特征在于,所述将接收到的所述数据分页组中各分页的数据存储在所述浏览器前端的缓存中,还包括:
当所述新节点所关联的标识大于所述目标节点所关联的标识、且所述目标节点下有右子节点时,将所述新节点作为所述目标节点的新右子节点,并将所述目标节点的原右子节点作为所述新节点的右子节点;
当所述新节点所关联的标识小于所述目标节点所关联的标识、且所述目标节点下没有左子节点时,将所述新节点作为所述目标节点的左子节点;
当所述新节点所关联的标识小于所述目标节点所关联的标识、且所述目标节点下有左子节点时,将所述新节点作为所述目标节点的新左子节点,并将所述目标节点的原左子节点作为所述新节点的左子节点。
4.根据权利要求1-3中任一项所述的方法,其特征在于,在所述确定滚动条的滚动停止位置所在的目标数据分页的步骤之前,所述方法还包括:
接收数据查询指令;
将所述数据查询指令发送至后台服务器;
接收所述后台服务器发送的符合所述数据查询指令的第一数据分页组中各分页的数据,其中,所述后台服务器将符合所述数据查询指令的全部数据按照优先级由大到小的顺序进行排序,并根据预设的分页大小、按照数据排列由前到后的顺序,将符合所述数据查询指令的数据划分成多个数据分页,其中,所述预设的分页大小表示一个数据分页中所包含的数据量,之后再按照数据分页排列由前到后的顺序对所述多个数据分页进行分组,形成多个数据分页组,所述第一数据分页组为所述多个数据分页组中排列在首位的数据分页组;
显示第一数据分页中的数据,其中,所述第一数据分页为所述第一数据分页组中排列在首位的数据分页;
将接收到的所述第一数据分页组中各分页的数据存储在所述浏览器前端的缓存中。
5.根据权利要求4所述的方法,其特征在于,在所述显示第一数据分页中的数据的步骤之前,并在所述确定滚动条的滚动停止位置所在的目标数据分页的步骤之前,所述方法还包括:
当接收到针对滚动条的滚动指令时,保持当前显示的数据不变,直到滚动条停止滚动为止。
6.一种数据加载装置,其特征在于,所述装置包括:
确定模块,用于确定滚动条的滚动停止位置所在的目标数据分页;
查询模块,用于查询浏览器前端的缓存,以确定所述目标数据分页中的数据是否已被加载至所述缓存中;
获取模块,用于当确定所述目标数据分页中的数据已被加载至所述缓存中时,从所述缓存中获取所述数据并进行显示;
所述装置还包括:
第一发送模块,用于当确定所述目标数据分页中的数据尚未被加载至所述缓存中时,向后台服务器发送数据获取指令,所述数据获取指令用于请求获取所述目标数据分页所属的数据分页组中各分页的数据;
第一接收模块,用于接收所述后台服务器发送的所述数据分页组中各分页的数据;
第一显示模块,用于显示所述目标数据分页中的数据;
第一存储模块,用于将接收到的所述数据分页组中各分页的数据存储在所述浏览器前端的缓存中;
其中,所述浏览器前端的缓存中的数据以二叉树的形式进行存储,所述二叉树中的每个节点分别对应一个数据分页组的标识,每个节点中存储有相对应的数据分页组中各分页的数据,所述第一存储模块包括:
节点创建子模块,用于创建一新节点;
第二确定子模块,用于确定所述目标数据分页所属的数据分页组的标识,并将所创建的新节点与所述目标数据分页所属的数据分页组的标识相关联;
第三确定子模块,用于从所述二叉树中确定其所关联的标识与所述新节点所关联的标识最接近的目标节点;
所述第一存储模块用于当所述新节点所关联的标识大于所述目标节点所关联的标识、且所述目标节点下没有右子节点时,将所述新节点作为所述目标节点的右子节点。
7.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现权利要求1-5中任一项所述方法的步骤。
8.一种电子设备,其特征在于,包括:
权利要求7中所述的计算机可读存储介质;以及
一个或者多个处理器,用于执行所述计算机可读存储介质中的程序。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711378619.6A CN108255952B (zh) | 2017-12-19 | 2017-12-19 | 数据加载方法、装置、存储介质及电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711378619.6A CN108255952B (zh) | 2017-12-19 | 2017-12-19 | 数据加载方法、装置、存储介质及电子设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108255952A CN108255952A (zh) | 2018-07-06 |
CN108255952B true CN108255952B (zh) | 2020-11-03 |
Family
ID=62723569
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201711378619.6A Active CN108255952B (zh) | 2017-12-19 | 2017-12-19 | 数据加载方法、装置、存储介质及电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108255952B (zh) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109446272B (zh) * | 2018-11-23 | 2021-09-10 | 聚好看科技股份有限公司 | 一种服务器的数据处理方法和装置 |
CN111989668B (zh) * | 2019-02-26 | 2024-05-14 | 西安诺瓦星云科技股份有限公司 | 数据项显示方法、装置及系统和计算机可读存储介质 |
CN110162303A (zh) * | 2019-04-26 | 2019-08-23 | 深圳智链物联科技有限公司 | 一种分页显示方法、系统及终端设备 |
CN111400578B (zh) * | 2020-03-02 | 2024-04-05 | 金蝶蝶金云计算有限公司 | 货物数据查询方法、装置、计算机设备和存储介质 |
CN112311843A (zh) * | 2020-03-18 | 2021-02-02 | 北京沃东天骏信息技术有限公司 | 数据加载方法和装置 |
CN112966130B (zh) * | 2021-03-18 | 2022-07-15 | 北京三快在线科技有限公司 | 多媒体资源展示方法、装置、终端及存储介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101819596A (zh) * | 2010-04-28 | 2010-09-01 | 烽火通信科技股份有限公司 | 一种基于内存的xml脚本缓存容器 |
CN103853716A (zh) * | 2012-11-28 | 2014-06-11 | 纽海信息技术(上海)有限公司 | 网页显示系统及方法 |
CN103905503A (zh) * | 2012-12-27 | 2014-07-02 | 中国移动通信集团公司 | 数据存取方法、调度方法、设备及系统 |
CN105868241A (zh) * | 2015-12-11 | 2016-08-17 | 乐视网信息技术(北京)股份有限公司 | 数据加载方法及装置 |
CN106648343A (zh) * | 2016-12-29 | 2017-05-10 | 广州阿里巴巴文学信息技术有限公司 | 一种用于电子书阅读的滚动翻页的显示方法和装置 |
-
2017
- 2017-12-19 CN CN201711378619.6A patent/CN108255952B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101819596A (zh) * | 2010-04-28 | 2010-09-01 | 烽火通信科技股份有限公司 | 一种基于内存的xml脚本缓存容器 |
CN103853716A (zh) * | 2012-11-28 | 2014-06-11 | 纽海信息技术(上海)有限公司 | 网页显示系统及方法 |
CN103905503A (zh) * | 2012-12-27 | 2014-07-02 | 中国移动通信集团公司 | 数据存取方法、调度方法、设备及系统 |
CN105868241A (zh) * | 2015-12-11 | 2016-08-17 | 乐视网信息技术(北京)股份有限公司 | 数据加载方法及装置 |
CN106648343A (zh) * | 2016-12-29 | 2017-05-10 | 广州阿里巴巴文学信息技术有限公司 | 一种用于电子书阅读的滚动翻页的显示方法和装置 |
Also Published As
Publication number | Publication date |
---|---|
CN108255952A (zh) | 2018-07-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108255952B (zh) | 数据加载方法、装置、存储介质及电子设备 | |
CN108848244B (zh) | 一种分页显示的方法及装置 | |
WO2018077085A1 (zh) | 应用程序处理方法、装置及存储介质 | |
CN108595445A (zh) | 翻译方法、装置及终端 | |
US20170195737A1 (en) | Method for video search and electronic device | |
CN112631679B (zh) | 一种微应用的预加载方法及装置 | |
CN109144998B (zh) | 节点数据的展现方法、装置、存储介质及电子设备 | |
CN110941779B (zh) | 加载页面的方法、装置、存储介质及电子设备 | |
WO2019041500A1 (zh) | 分页的实现方法、装置、计算机设备及存储介质 | |
CN110610352A (zh) | 一种流程处理方法、装置、电子设备及计算机可读存储介质 | |
US20220035491A1 (en) | List display method and apparatus, computer device and computer-readable medium | |
CN108829311A (zh) | 一种基于Widget展示数据的方法和装置 | |
CN101103341A (zh) | 电子文档显示设备和方法 | |
CN106874326A (zh) | 一种条目列表获取请求处理方法及装置 | |
CN108255976B (zh) | 数据排序的方法、装置和存储介质以及电子设备 | |
CN109753612B (zh) | 问卷显示的控制方法、装置、存储介质和电子设备 | |
CN108008925A (zh) | 分屏模式下的应用数据共享方法、装置、终端及存储介质 | |
CN102937858B (zh) | 文字输入的方法及电子设备 | |
CN108062401B (zh) | 应用推荐方法、装置及存储介质 | |
US20200183981A1 (en) | Resource Search Method and Related Product | |
CN110069532A (zh) | 数据查询方法、装置、计算机可读存储介质及电子设备 | |
CN112596820A (zh) | 一种资源加载方法、装置、设备以及存储介质 | |
CN112966201B (zh) | 对象处理方法、装置、电子设备以及存储介质 | |
CN117425887A (zh) | 数据处理方法、装置、电子设备和计算机可读存储介质 | |
CN111026615B (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 |