CN107704576B - 数据展示优化方法、装置、终端设备及存储介质 - Google Patents
数据展示优化方法、装置、终端设备及存储介质 Download PDFInfo
- Publication number
- CN107704576B CN107704576B CN201710918445.1A CN201710918445A CN107704576B CN 107704576 B CN107704576 B CN 107704576B CN 201710918445 A CN201710918445 A CN 201710918445A CN 107704576 B CN107704576 B CN 107704576B
- Authority
- CN
- China
- Prior art keywords
- data
- row
- visible area
- column
- table row
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/248—Presentation of query results
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computational Linguistics (AREA)
- User Interface Of Digital Computer (AREA)
Abstract
本发明公开了一种数据展示优化方法、装置、终端设备及存储介质,本发明通过获取表格初始状态的当前可见区域及对应的每个单元格的数据,并填充显示数据,以及,获取滚动条滚动后的新增可见区域及对应的每个单元格的数据,并填充显示数据。在本发明实施例所述技术方案中,使得用户初始使用表格查看表格内的数据时,只加载填充当前可见区域内的数据,进而减少了当前填充的数据量,避免了表格响应时间长及界面卡顿的问题,提升了数据展现的速度及流畅度,让用户有更好的体验。
Description
技术领域
本发明涉及数据处理技术领域,尤其涉及一种数据展示优化方法、装置、终端设备及存储介质。
背景技术
用户在操作造价工程预算软件的过程中会产生大量的树形数据,如图1所示,图中主要有章节,清单,定额三种类型的数据,三者的结构关系如下:章节是父项,章节可以嵌套章节,章节可以包含清单,清单包含定额。用户需要通过表格显示和操作(如增删改查)这些树形数据。
工程预算软件大多是基于Eclipse RCP框架开发的,Eclipse RCP框架支持的开发语言是Java,Java客户端开发的控件包比较少,常用的是官方提供的SWT控件包和Eclipse的Nebula项目中的控件包。软件中产生的数据结构是树形数据,因此,表格需要通过表格型的控件展示,JAVA常见的表格控件是SWT Table控件和Nebula下的Grid控件。由于软件对表格的样式(多行表头,表头可拖拽,表格着色,单元格合并)和表格编辑器有特殊要求,Nebula Grid通过改造,可以满足业务需求,所以通常在软件中常使用Nebula下的Grid控件展示数据。
根据Eclispe的Nebula项目官方提供的示例使用Grid控件展示数据主要包含以下步骤:
1、新建表格;
2、循环创建表格列;
3、循环填充表格行数据。
Eclipse为了简化表格的使用,在Eclipse的JFace工具包提供了视图Viewer、内容管理器ContentProvider和标签提供器LabelProvider用于简化表格的创建和数据填充。其中,ContentProvider的主要功能是把数据转换为表格需要的数据模型,这里转换为数组;LabelProvider的主要功能是设置每个单元格显示的文本和图片;setInput的主要功能是设置表格需要显示的数据源。
之后,通过GridTreeViewer创建表格主要可包含以下过程:
1、创建GridTreeViewer(GridTreeViewer gridTreeViewer=newGridTreeViewer(owner,style)Grid);
2、创建GridColumnViewer(GirdColumnViewer gcv=new GridColumnViewer(gridTreeViewer,style));
3、设置表格列的LabelProvider(column--Viewer.setLabelPrivider(labelProvider));
4、设置数据源(gridTreeViewr.setInput(datas))。
根据上述展示表格数据的过程可发现存在如下问题:在实际应用中,若需要展示一个如1w行35列的表格数据时,表格加载速度慢,单元格进入编辑后退出单元格编辑刷新界面,界面会卡死,树形表格展开折叠节点反应慢,响应时间长。经测试Grid一次展示(刷新)时间大概在10s-15s,表格刷新过程造成的界面卡顿影响了用户体验。针对以上大批量数据展示的问题,通过使用性能分析工具分析35列的Gird展示1w条记录,需要填充35列*1W行=35w个单元格,填充35w个单元格的内容需要花费大部分的初始化表格时间,是造成界面卡顿的主要原因。
目前对于大批量数据展示主流的解决方案又两种,分别是分页和延迟加载,在应用工程预算软件的过程中由于需要展示的数据是树形结构,分页对于树形表格不合适,另外,软件中需要展示的树形数据是已经在内存中存在的,因此Grid数据源不需要做延迟加载。
综上所述,亟需一种基于Grid的数据展示优化方法,来解决现有数据展示存在的加载速度慢、响应时间长及界面卡顿的问题。
发明内容
本发明实施例提供了一种数据展示优化方法、装置、终端设备及存储介质,用以解决现有数据展示存在的加载速度慢、响应时间长及界面卡顿的问题。
本发明实施例提供了一种数据展示优化方法,所述方法包括:
获取表格初始状态的当前可见区域;
获取所述表格初始状态的当前可见区域内每行单元格对应的数据,并填充显示数据;
获取滚动条滚动后的新增可见区域;
获取所述新增可见区域内每行单元格对应的数据,并填充显示数据。
这样由于用户只看当前可见区域内的数据,所以本发明实施例在显示表格数据时只加载填充当前可见区域内的数据,减少了当前填充的数据量,避免了表格响应时间长及界面卡顿的问题,提升了数据展现的速度及流畅度,让用户有更好的体验。
进一步地,作为一个可执行方案,获取表格初始状态的当前可见区域,具体包括:
获取表格初始状态的当前可见区域的起始表格行和列坐标、表格行数和列数、以及终止表格行和列坐标。
通过获取表格的初始行列坐标,可准确的获取表格当前可见区域范围,进而能够准确的进行数据填充显示。
进一步地,作为一个可执行方案,所述获取表格初始状态的当前可见区域的起始表格行和列坐标、表格行数和列数、以及终止表格行和列坐标之后,所述方法还包括:
将起始表格行和列坐标、表格行数和列数、以及终止表格行和列坐标保存至快照中。
将表格初始行列坐标存入快照中,用于后续表格更新比较,以便于准确的填充更新的表格数据。
进一步地,作为一个可执行方案,在获取表格当前可见区域之前,还包括以下步骤:
步骤S1:根据内存中的数据源获取层次为N的数据A,并根据数据A往表格中新建行,绑定表格的行数据A,其中N为正整数;
步骤S2:遍历数据A中的每条数据,判断数据A是否存在子项Ai,若是,则获取数据A的所有子项Ai,并在数据A所在表格行后***子项的表格行,绑定表格的行数据Ai,其中i为正整数;
步骤S3:判断数据Ai节点的折叠和展开状态,如果折叠,则不继续创建表格行;如果展开,重复步骤S2的操作,直至表格创建完成;
步骤S4:计算表格总行数,并通知滚动条。
进一步地,作为一个可执行方案,所述获取滚动条滚动后的新增可见区域,具体包括:
根据滚动条获取表格滚动后的当前可见区域的起始表格行和列坐标、表格行数和列数、以及终止表格行和列坐标,并保存至快照中;
将快照中的表格滚动后的当前可见区域的起始表格行和列坐标、表格行数和列数、以及终止表格行和列坐标,与表格初始状态的当前可见区域的起始表格行和列坐标、表格行数和列数、以及终止表格行和列坐标进行比较,确定滚动条滚动后的新增可见区域。
进一步地,本发明实施例还提供了一种数据展示优化装置,所述装置包括:
第一获取单元,用于获取表格初始状态的当前可见区域,获取所述表格初始状态的当前可见区域内每行单元格对应的数据;
第一数据显示单元,用于将获取到的所述表格初始状态的当前可见区域内每行单元格对应的数据进行填充显示数据;
第二获取单元,用于获取滚动条滚动后的新增可见区域,获取所述新增可见区域内每行单元格对应的数据;
第二数据显示单元,用于将获取到的所述新增可见区域内每行单元格对应的数据进行填充显示数据。
进一步地,本发明实施例还提供了一种数据展示优化终端设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述方法的步骤。
进一步地,本发明实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现上述方法的方法的步骤。
本发明有益效果如下:
本发明实施例提供了一种数据展示优化方法、装置、终端设备及存储介质,本发明通过获取表格初始状态的当前可见区域及对应的每个单元格的数据,并填充显示数据,以及,获取滚动条滚动后的新增可见区域及对应的每个单元格的数据,并填充显示数据。在本发明实施例所述技术方案中,使得用户初始使用表格查看表格内的数据时,只加载填充当前可见区域内的数据,进而减少了当前填充的数据量,避免了表格响应时间长及界面卡顿的问题,提升了数据展现的速度及流畅度,让用户有更好的体验。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简要介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1所示为现有造价工程预算软件的过程中会产生大量的树形数据的表格界面示意图;
图2所示为本发明实施例一所述的一种数据展示优化方法的流程示意图;
图3所示为本发明实施例一所述的表格配置示意图;
图4所示为本发明实施例一所述的新增可见区域的填充效果图;
图5所示为本发明实施例一所述的用户和表格处理的交互示意图;
图6所示为本发明实施例二所述的一种数据展示优化装置的结构示意图。
具体实施方式
为了使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明作进一步地详细描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
本发明主要是为了解决Grid展示内存中大批量树形数据时存在的性能问题,提供一种新的基于Nebula Gird的延迟展示数据技术。发明的主要想法是Grid在展示数据时,无论需要展示的数据量有多大,数据是什么结构(树形层次结构或者List型数据),Grid初始化时只填充界面可见区域内的表格单元格的数据并绘制当前填充单元格的样式(字体,字号,前景色,背景色)展示给用户。界面滚动滚动条,逐步填充新增的表格行和表格列,最终完成整个Grid的延迟填充绘制。通过该技术方案解决Grid展示内存中的大数据造成的界面卡顿问题。假设需要显示的数据35列*1W行,界面区域可见范围为10列*40行,表格初始化只填充400个单元格,这将极大程度的降低表格初始化的时间。
实施例一:
本发明实施例一提供了一种数据展示优化方法,如图1所示,其为本发明实施例一所述的一种数据展示优化方法的流程示意图,所述方法可包括以下步骤:
步骤201:获取表格初始状态的当前可见区域。
步骤202:获取所述表格初始状态的当前可见区域内每行单元格对应的数据,并填充显示数据。
步骤203:获取滚动条滚动后的新增可见区域。
步骤204:获取所述新增可见区域内每行单元格对应的数据,并填充显示数据。
这样由于用户只看当前可见区域内的数据,所以本发明实施例在显示表格数据时只加载填充当前可见区域内的数据,减少了当前填充的数据量,避免了表格响应时间长及界面卡顿的问题,提升了数据展现的速度及流畅度,让用户有更好的体验。
进一步地,对于步骤201,获取表格初始状态的当前可见区域,可具体执行为:
获取表格初始状态的当前可见区域的起始表格行和列坐标、表格行数和列数、以及终止表格行和列坐标。
进一步地,作为一个可执行方案,在所述获取表格初始状态的当前可见区域的起始表格行和列坐标、表格行数和列数、以及终止表格行和列坐标之后,所述方法还可包括:
将起始表格行和列坐标、表格行数和列数、以及终止表格行和列坐标保存至快照中。
将表格初始行列坐标存入快照中,用于后续表格更新比较,以便于准确的填充更新的表格数据。
需要说明的是,计算初始化表格的可见行和可见列数,获取客户端界面表格的可见区域大小可根据如下规则计算:实际可绘制表格行的数量=(可见区域的高度-表格行头的高度)/表格行的高度;实际可绘制表格列的数量i,∑(列i)>=可见区域的宽度-表格列头的宽度。
根据以上规则,计算出初始化Grid需要填充的表格行和表格列范围并记录到快照中(快照中主要存储当前可见区域起始表格行和表格列坐标,绘制的表格行数和表格列数/以及终止表格行和表格列坐标)。之后,可根据每个表格行绑定的数据,填充可见区域内每行单元格的数据,从而完成绘制当前填充区域的单元格数据,并展示给用户。
通过获取表格的初始行列坐标,可准确的获取表格当前可见区域范围,进而能够准确的进行数据填充显示。
进一步地,作为一个可执行方案,在步骤201,获取表格当前可见区域之前,所述方法还可包括以下步骤:
步骤S1:根据内存中的数据源获取层次为N的数据A,并根据数据A往表格中新建行,绑定表格的行数据A,其中N为正整数。
需要说明的是,在配置表格、绑定单元格数据之前,在终端设备的内存(存储介质)中,存储有表格内各单元格所要填充显示的所有数据,本发明实施例对此不做赘述。
另外,需要说明的是,在步骤S1中,只是单纯的做表格行和数据的关联,并不做单元格数据的填充。
步骤S2:遍历数据A中的每条数据,判断数据A是否存在子项Ai,若是,则获取数据A的所有子项Ai,并在数据A所在表格行后***子项的表格行,绑定表格的行数据Ai,其中i为正整数。
步骤S3:判断数据Ai节点的折叠和展开状态,如果折叠,则不继续创建表格行;如果展开,重复步骤S2的操作,直至表格创建完成。
此处需要说明的是,直至表格创建完成,可理解为内存中对应的表格所需的数据源均绑定完成即认为表格创建完成。
步骤S4:计算表格总行数,并通知滚动条。
也就是说,在根据内存中存储的数据往表格中新建行时,会遍历数据A中的每条数据,并判断若数据A存在子项Ai,则直接在数据A所在表格行后***子项的表格行,可理解为,A为父节点,Ai为子节点,然后继续判断子项Ai的折叠和展开状态,如果折叠,则不继续创建表格行(这里之所以要判断子项Ai的折叠和展开状态是因为,折叠的子项在绘制表格的时候是不创建表格行的,因为界面不需要显示折叠的子项。而如果在界面点击父项的时候,比如子项A1还存在子项,这样后台会自动在父项A1下添加子项,并通知界面重新绘制新增的父项A1的表格行后的子项的表格行);相应的,如果子项Ai展开,则重复步骤S2的操作,直至表格创建完成。
更具体地,grid在创建表格行的时候首先会创建第一层的数据,然后遍历第一层数据判断是不是有子项,有子项的话第一层数据会显示树形的+,如果没有的话就没有树形标志。第一层表格行根据绑定数据的展开折叠标记控制当前行是否展开,如果展开的话创建当前表格行的子项,并把树形标记显示为-;如果折叠的话就不创建子项。为了更好的呈现本发明实施例所述的技术方案,本发明实施例一提供了表格配置示意图,具体可图3所示。
需要说明的是,计算表格总行数,并通知滚动条的目的是,表格要把当前表格的总行数通知滚动条,滚动条才可以根据总行数绘制滚动条,如果行数比较少滚动条的滚动的总步数就比较少,行数多的换步数就比较多,界面上体现就是表格行数少的话,纵向滚动条可以滚动的区域少,行数多的话区域比较大,本发明实施例对此不做赘述。
进一步地,对于步骤203,所述获取滚动条滚动后的新增可见区域,具体包括:
根据滚动条获取表格滚动后的当前可见区域的起始表格行和列坐标、表格行数和列数、以及终止表格行和列坐标,并保存至快照中;
将快照中的表格滚动后的当前可见区域的起始表格行和列坐标、表格行数和列数、以及终止表格行和列坐标,与表格初始状态的当前可见区域的起始表格行和列坐标、表格行数和列数、以及终止表格行和列坐标进行比较,确定滚动条滚动后的新增可见区域。
对于表格不可见区域进行延迟填充不可见区域内单元格的数据,也就是当前不可见区域内的数据暂时不填充,当滚动条滚动后,获取了滚动条滚动后的新增可见区域后,再填充新增可见区域,从而避免了表格数据加载量过大,导致的表格响应速度慢、界面卡顿等问题。
具体地,用户在界面滚动纵向滚动条时,根据纵向滚动条可以获取新的表格初始行下标位置,重新计算当前表格可见区域的大小。实际可绘制最后一行的下标=当前行下标+初始化表格中当前可见区域内计算的表格行数量-1。实际可绘制列的表格列数量跟初始化表格中当前可见区域内一样。通过重新计算可以获取一个新的表格可见区域并生成一个新的表格快照(包括新的表格可见区域的起始表格行和列坐标、表格行数和列数、以及终止表格行和列坐标),通过和之前存储在快照中的初始化表格中当前可见区域的起始表格行和列坐标、表格行数和列数、以及终止表格行和列坐标做比较,计算出本次新增的表格行,并填充数据。
同理,用户在界面拖动横向滚动条时,根据横向滚动条可以获取新的表格初始列下标位置,重新计算当前表格可见区域的大小。实际可绘制最后一列的下标=当前列下标+初始化表格中当前可见区域内计算的表格列数量-1。实际可绘制行的数量跟初始化表格中当前可见区域内一样。通过重新计算可以获取一个新的表格可见区域并生成一个新的表格快照(包括新的表格可见区域的起始表格行和列坐标、表格行数和列数、以及终止表格行和列坐标),通过和之前存储在快照中的初始化表格中当前可见区域起始表格行和列坐标、表格行数和列数、以及终止表格行和列坐标做比较,计算出本次新增的表格列,并填充数据。
为了更好的呈现本发明实施例所述的技术方案,本发明实施例一提供了新增可见区域的填充效果图,具体可图4所示。
另外,本发明实施例还提供了用户和表格处理的交互示意图,如图5所示。
进一步地,为了更好的说明本发明实施例所述技术方案,提供了一个实例,如下:
例如:客户端界面大小为500*400像素,表格行头高度为50像素,表格列头高度为50像素,每个表格行的高度设置为50像素,每个表格列的宽度为90像素。
初始化的时候可以绘制的表格行数=(400-50)/50=9行,可以绘制表格列数=(500-50)/90=5列。那初始化的时候表格只需要填充5*9,9行5列45个单元格的数据。表格的当前快照为(起始行0,起始列0,终止行9,终止列5,行数9,列数5)。
拖动纵向滚动条到表格的表格第3行,则此时可以绘制的表格行数还是9行,可以绘制的表格列数5列,表格起始行为3,起始列为0,这时候表格的快照为(起始行3,起始列9,结束行=3+9-1(11),结束列5,行数9,列数5),新增的单元格为第10行和第11行,这时需要填充的数据为5*2共10个单元格。
根据具体实验可知,使用本发明所述技术方案对Grid进行改造,通过使用性能分析工具分析,1万行35列的数据,初始化展示的时间可以从10s降低到2s,大大降低了表格数据展示所需的时间。
而在具体配置实现时,本发明新增了事件GridRangeChageEvent用于记录表格填充绘制时的快照信息;新增侦听GridVisibleRangeListener根据快照对比生成新增的行列信息填充表格单元格数据;新增Paint事件,Paint事件通过记录Grid前一次展示的快照与当前表格的表格快照对比,生成出Grid行、列的变化信息,并存储到GridRangeChageEvent中。Paint事件转发信息给GridVisibleRangeListener,根据表格行列变化填充新增的表格单元格数据,本发明实施例对此不做赘述。
本发明实施例一所述的一种数据展示优化方法,通过获取表格初始状态的当前可见区域及对应的每个单元格的数据,并填充显示数据,以及,获取滚动条滚动后的新增可见区域及对应的每个单元格的数据,并填充显示数据。在本发明实施例所述技术方案中,使得用户初始使用表格查看表格内的数据时,只加载填充当前可见区域内的数据,进而减少了当前填充的数据量,避免了表格响应时间长及界面卡顿的问题,提升了数据展现的速度及流畅度,让用户有更好的体验。
实施例二
基于与本发明实施例一相同的发明构思,本发明实施例二还提供了一种数据展示优化装置,如图6所示为本发明实施例二所述的一种数据展示优化装置,所述装置包括:
第一获取单元61,可用于获取表格初始状态的当前可见区域,获取所述表格初始状态的当前可见区域内每行单元格对应的数据;
第一数据显示单元62,可用于将获取到的所述表格初始状态的当前可见区域内每行单元格对应的数据进行填充显示数据;
第二获取单元63,可用于获取滚动条滚动后的新增可见区域,获取所述新增可见区域内每行单元格对应的数据;
第二数据显示单元64,可用于将获取到的所述新增可见区域内每行单元格对应的数据进行填充显示数据。
进一步地,所述第一获取单元61,可具体用于获取表格初始状态的当前可见区域的起始表格行和列坐标、表格行数和列数、以及终止表格行和列坐标。
进一步地,所述装置还包括存储单元65;
所述存储单元65,可用于在所述第一获取单元62所述获取表格初始状态的当前可见区域的起始表格行和列坐标、表格行数和列数、以及终止表格行和列坐标之后,将起始表格行和列坐标、表格行数和列数、以及终止表格行和列坐标保存至快照中。
进一步地,所述装置还包括配置单元66;
所述配置单元66,可用于在所述第一获取单元61获取表格当前可见区域之前,根据内存中的数据源获取层次为N的数据A,并根据数据A往表格中新建行,绑定表格的行数据A,其中N为正整数;遍历数据A中的每条数据Ai,判断数据Ai是否存在子项,若是,则获取数据Ai的所有子项B,并在数据Ai所在表格行后***子项的表格行,绑定表格的行数据B,其中i为正整数;判断数据Ai节点的折叠和展开状态,如果折叠,则不继续创建表格行;如果展开,重复步骤S2的操作,直至表格创建完成;计算表格总行数,并通知滚动条。
进一步地,所述第二获取单元63,可具体用于根据滚动条获取表格滚动后的当前可见区域的起始表格行和列坐标、表格行数和列数、以及终止表格行和列坐标,并保存至快照中;将快照中的表格滚动后的当前可见区域的起始表格行和列坐标、表格行数和列数、以及终止表格行和列坐标,与表格初始状态的当前可见区域的起始表格行和列坐标、表格行数和列数、以及终止表格行和列坐标进行比较,确定滚动条滚动后的新增可见区域。
本发明实施例二所述的一种数据展示优化装置,通过获取表格初始状态的当前可见区域及对应的每个单元格的数据,并填充显示数据,以及,获取滚动条滚动后的新增可见区域及对应的每个单元格的数据,并填充显示数据。在本发明实施例所述技术方案中,使得用户初始使用表格查看表格内的数据时,只加载填充当前可见区域内的数据,进而减少了当前填充的数据量,避免了表格响应时间长及界面卡顿的问题,提升了数据展现的速度及流畅度,让用户有更好的体验。
进一步地,本发明实施例还提供了一种数据展示优化终端设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现本发明实施例上述方法实施例中的步骤,例如图2所示的步骤201-204等方法步骤。或者,所述处理器执行所述计算机程序时实现上述各装置实施例中各模块/单元的功能,例如实现上述第一获取单元61、第一数据显示单元62、第二获取单元63和第二数据显示单元64等单元的功能。
示例性的,所述计算机程序可以被分割成一个或多个模块/单元,所述一个或者多个模块/单元被存储在所述存储器中,并由所述处理器执行,以完成本发明。所述一个或多个模块/单元可以是能够完成特定功能的一系列计算机程序指令段,该指令段用于描述所述计算机程序在所述数据展示优化终端设备中的执行过程。例如,所述计算机程序可以被分割成第一获取单元61、第一数据显示单元62、第二获取单元63和第二数据显示单元64等单元,各模块具体功能如下:
第一获取单元61,可用于获取表格初始状态的当前可见区域,获取所述表格初始状态的当前可见区域内每行单元格对应的数据;
第一数据显示单元62,可用于将获取到的所述表格初始状态的当前可见区域内每行单元格对应的数据进行填充显示数据;
第二获取单元63,可用于获取滚动条滚动后的新增可见区域,获取所述新增可见区域内每行单元格对应的数据;
第二数据显示单元64,可用于将获取到的所述新增可见区域内每行单元格对应的数据进行填充显示数据。
进一步地,作为一个可执行方案,所述数据展示优化终端设备可以是桌上型计算机、笔记本、掌上电脑及云端服务器等计算设备。所述数据展示优化终端设备可包括,但不仅限于,处理器、存储器。本领域技术人员可以理解,上述数据展示优化终端设备的组成结构仅仅是数据展示优化终端设备的示例,并不构成对数据展示优化终端设备的限定,可以包括比上述更多或更少的部件,或者组合某些部件,或者不同的部件,例如所述数据展示优化终端设备还可以包括输入输出设备、网络接入设备、总线等,本发明实施例对此不做限定。
进一步地,作为一个可执行方案,所称处理器可以是中央处理单元(CentralProcessing Unit,CPU),还可以是其他通用处理器、数字信号处理器(Digital SignalProcessor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现成可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等,所述处理器是所述数据展示优化终端设备的控制中心,利用各种接口和线路连接整个数据展示优化终端设备的各个部分。
所述存储器可用于存储所述计算机程序和/或模块,所述处理器通过运行或执行存储在所述存储器内的计算机程序和/或模块,以及调用存储在存储器内的数据,实现所述数据展示优化终端设备的各种功能。所述存储器可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作***、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储根据手机的使用所创建的数据(比如音频数据、电话本等)等。此外,存储器可以包括高速随机存取存储器,还可以包括非易失性存储器,例如硬盘、内存、插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)、至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。
进一步地,本发明实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现本发明实施例上述方法的步骤。
所述数据展示优化终端设备集成的模块/单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明实现上述实施例方法中的全部或部分流程,也可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述各个方法实施例的步骤。其中,所述计算机程序包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、U盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、电载波信号、电信信号以及软件分发介质等。需要说明的是,所述计算机可读介质包含的内容可以根据司法管辖区内立法和专利实践的要求进行适当的增减,例如在某些司法管辖区,根据立法和专利实践,计算机可读介质不包括电载波信号和电信信号。
也就是说,在本发明实施例中,通过获取表格初始状态的当前可见区域及对应的每个单元格的数据,并填充显示数据,以及,获取滚动条滚动后的新增可见区域及对应的每个单元格的数据,并填充显示数据。在本发明实施例所述技术方案中,使得用户初始使用表格查看表格内的数据时,只加载填充当前可见区域内的数据,进而减少了当前填充的数据量,避免了表格响应时间长及界面卡顿的问题,提升了数据展现的速度及流畅度,让用户有更好的体验。
需要说明的是,尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
Claims (6)
1.一种数据展示优化方法,其特征在于,所述方法包括:
获取表格初始状态的当前可见区域;
获取所述表格初始状态的当前可见区域内每行单元格对应的数据,并填充显示数据;
获取滚动条滚动后的新增可见区域;
获取所述新增可见区域内每行单元格对应的数据,并填充显示数据;
所述获取滚动条滚动后的新增可见区域,具体包括:
根据滚动条获取表格滚动后的当前可见区域的起始表格行和列坐标、表格行数和列数、以及终止表格行和列坐标,并保存至快照中;
将快照中的表格滚动后的当前可见区域的起始表格行和列坐标、表格行数和列数、以及终止表格行和列坐标,与表格初始状态的当前可见区域的起始表格行和列坐标、表格行数和列数、以及终止表格行和列坐标进行比较,确定滚动条滚动后的新增可见区域;
所述获取表格初始状态的当前可见区域之前,还包括以下步骤:
步骤S1:根据内存中的数据源获取层次为N的数据A,并根据数据A往表格中新建行,绑定表格的行数据A,其中N为正整数;
步骤S2:遍历数据A中的每条数据,判断数据A是否存在子项Ai,若是,则获取数据A的所有子项Ai,并在数据A所在表格行后***子项的表格行,绑定表格的行数据Ai,其中i为正整数;
步骤S3:判断数据Ai节点的折叠和展开状态,如果折叠,则不继续创建表格行;如果展开,重复步骤S2的操作,直至表格创建完成;
步骤S4:计算表格总行数,并通知滚动条。
2.如权利要求1所述的方法,其特征在于,获取表格初始状态的当前可见区域,具体包括:
获取表格初始状态的当前可见区域的起始表格行和列坐标、表格行数和列数、以及终止表格行和列坐标。
3.如权利要求2所述的方法,其特征在于,所述获取表格初始状态的当前可见区域的起始表格行和列坐标、表格行数和列数、以及终止表格行和列坐标之后,所述方法还包括:
将起始表格行和列坐标、表格行数和列数、以及终止表格行和列坐标保存至快照中。
4.一种数据展示优化装置,其特征在于,所述装置包括:
第一获取单元,用于获取表格初始状态的当前可见区域,获取所述表格初始状态的当前可见区域内每行单元格对应的数据;
第一数据显示单元,用于将获取到的所述表格初始状态的当前可见区域内每行单元格对应的数据进行填充显示数据;
第二获取单元,用于获取滚动条滚动后的新增可见区域,获取所述新增可见区域内每行单元格对应的数据;
第二数据显示单元,用于将获取到的所述新增可见区域内每行单元格对应的数据进行填充显示数据;
所述第二获取单元,还用于根据滚动条获取表格滚动后的当前可见区域的起始表格行和列坐标、表格行数和列数、以及终止表格行和列坐标,并保存至快照中;
将快照中的表格滚动后的当前可见区域的起始表格行和列坐标、表格行数和列数、以及终止表格行和列坐标,与表格初始状态的当前可见区域的起始表格行和列坐标、表格行数和列数、以及终止表格行和列坐标进行比较,确定滚动条滚动后的新增可见区域;
所述装置还包括配置单元;
所述配置单元,可用于在所述第一获取单元获取表格初始状态的当前可见区域之前,根据内存中的数据源获取层次为N的数据A,并根据数据A往表格中新建行,绑定表格的行数据A,其中N为正整数;遍历数据A中的每条数据Ai,判断数据Ai是否存在子项,若是,则获取数据Ai的所有子项B,并在数据Ai所在表格行后***子项的表格行,绑定表格的行数据B,其中i为正整数;判断数据Ai节点的折叠和展开状态,如果折叠,则不继续创建表格行;如果展开,重复步骤S2的操作,直至表格创建完成;计算表格总行数,并通知滚动条。
5.一种数据展示优化终端设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1~3任一项所述方法的步骤。
6.一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1~3任一项所述方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710918445.1A CN107704576B (zh) | 2017-09-30 | 2017-09-30 | 数据展示优化方法、装置、终端设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710918445.1A CN107704576B (zh) | 2017-09-30 | 2017-09-30 | 数据展示优化方法、装置、终端设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107704576A CN107704576A (zh) | 2018-02-16 |
CN107704576B true CN107704576B (zh) | 2020-03-31 |
Family
ID=61184335
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710918445.1A Active CN107704576B (zh) | 2017-09-30 | 2017-09-30 | 数据展示优化方法、装置、终端设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107704576B (zh) |
Families Citing this family (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108959206A (zh) * | 2018-07-02 | 2018-12-07 | 浪潮软件股份有限公司 | 一种优化Vue前端表格组件渲染性能的方法及*** |
CN109299449A (zh) * | 2018-10-10 | 2019-02-01 | 拉扎斯网络科技(上海)有限公司 | 表格处理方法、装置、电子设备及可读存储介质 |
CN110244993A (zh) * | 2018-12-25 | 2019-09-17 | 蔚来汽车有限公司 | 前端页面加载方法、装置、控制器及介质 |
CN110989907B (zh) * | 2019-11-27 | 2021-06-15 | 浙江大华技术股份有限公司 | 一种数据显示方法、装置、电子设备及存储介质 |
CN111898049B (zh) * | 2020-06-16 | 2021-04-13 | 广州市玄武无线科技股份有限公司 | 一种表格实现方法、装置、计算机终端设备及存储介质 |
CN111931093A (zh) * | 2020-07-09 | 2020-11-13 | 北京皮尔布莱尼软件有限公司 | 一种页面中表格的展示方法及移动终端 |
CN111723560B (zh) * | 2020-07-15 | 2024-04-19 | 金蝶软件(中国)有限公司 | 一种表格并行显示区域动态调整方法、***及相关设备 |
CN112528614A (zh) * | 2020-12-18 | 2021-03-19 | 北京光启元数字科技有限公司 | 一种表格编辑方法、装置和电子设备 |
CN112731885A (zh) * | 2020-12-29 | 2021-04-30 | 浙江中控技术股份有限公司 | 用于集散控制***的表格显示方法和*** |
CN112784529B (zh) * | 2021-02-03 | 2022-10-21 | 叮当快药科技集团有限公司 | 基于BetterScroll的移动端排序表格及其构建方法 |
CN113297313B (zh) * | 2021-06-07 | 2023-11-07 | 平安证券股份有限公司 | 表格数据展示方法、装置、电子设备及存储介质 |
CN113393294A (zh) * | 2021-06-11 | 2021-09-14 | 北京沃东天骏信息技术有限公司 | 一种页面显示方法及装置、设备、存储介质 |
CN113504901A (zh) * | 2021-06-28 | 2021-10-15 | 东莞市小精灵教育软件有限公司 | 一种树形表格控件生成方法、装置、设备及存储介质 |
CN113778306A (zh) * | 2021-09-07 | 2021-12-10 | 上海浦东发展银行股份有限公司 | 一种表格数据处理方法、装置、设备和存储介质 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1740967A (zh) * | 2004-08-23 | 2006-03-01 | 华为技术有限公司 | 一种在表格使用中减少占用内存的方法 |
CN103164401A (zh) * | 2011-12-08 | 2013-06-19 | 航天信息软件技术有限公司 | 页面表格显示方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9659050B2 (en) * | 2013-08-06 | 2017-05-23 | Sybase, Inc. | Delta store giving row-level versioning semantics to a non-row-level versioning underlying store |
-
2017
- 2017-09-30 CN CN201710918445.1A patent/CN107704576B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1740967A (zh) * | 2004-08-23 | 2006-03-01 | 华为技术有限公司 | 一种在表格使用中减少占用内存的方法 |
CN103164401A (zh) * | 2011-12-08 | 2013-06-19 | 航天信息软件技术有限公司 | 页面表格显示方法 |
Also Published As
Publication number | Publication date |
---|---|
CN107704576A (zh) | 2018-02-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107704576B (zh) | 数据展示优化方法、装置、终端设备及存储介质 | |
US11344806B2 (en) | Method for rendering game, and method, apparatus and device for generating game resource file | |
US11307750B2 (en) | Method and system for section-based editing of a website page | |
CN109614424B (zh) | 页面布局生成方法、装置、计算设备和介质 | |
CN105045645B (zh) | 网页加载方法、装置及*** | |
CN102915297B (zh) | 底层网格结构以及表的动画 | |
CN109408764B (zh) | 页面区域划分方法、装置、计算设备和介质 | |
US20160098250A1 (en) | Application prototyping tool | |
US20130061124A1 (en) | Managing forms in electronic documents | |
KR20080107444A (ko) | 그래프형 다이어그램을 편집하기 위한 2차원 트리들의 동적레이아웃 방법, 영구적 변경 보존 방법, 및 컴퓨터 프로그램 제품 | |
CN106095437A (zh) | 用户界面从右到左rtl的布局方式的实现方法及装置 | |
CN106294301B (zh) | 报表生成方法和装置 | |
CN112711418B (zh) | 多组件的前端界面布局方法、装置、电子设备和存储介质 | |
CN111881662A (zh) | 表单生成方法、装置、处理设备及存储介质 | |
CN112667330A (zh) | 一种页面显示方法及计算机设备 | |
WO2022116936A1 (zh) | 一种界面布局方法、电子设备和计算机可读存储介质 | |
CN112799670B (zh) | 一种统一多端逻辑开发的方法及*** | |
US20180004374A1 (en) | Process visualization toolkit | |
CN107621951B (zh) | 一种视图层级优化的方法及装置 | |
CN109800039B (zh) | 一种用户界面展示方法、装置、电子设备及存储介质 | |
CN106354449B (zh) | 一种文档在线演示方法及客户端 | |
US9811448B2 (en) | Event-driven software testing | |
US9443441B1 (en) | View port resolution independent network pages | |
CN104360851A (zh) | 一种需求预演业务的组合控制方法 | |
CN111782309B (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 |