一种数据加载方法、装置、计算机设备及存储介质
技术领域
本公开涉及互联网技术领域,具体而言,涉及一种数据加载方法、装置、计算机设备及存储介质。
背景技术
随着互联网技术的发展,越来越多的用户通过采用互联网来获取新闻等各类资讯内容,而各类资讯内容的推送则以信息流方式来展现。
在信息流展示之前,可以采用分区加载的方式加载各种样式的列表项。然而,由于不同样式的列表项所需要的加载时间不同,这导致耗时较长的列表项样式在展示分区内无法及时显示,从而降低了人机交互的流畅度。
发明内容
本公开实施例至少提供一种数据加载的方案,能够基于实际业务需求灵活配置延迟加载样式类型,进而灵活控制页面数据加载的优先级,使得页面数据的加载按照优先次序依次进行,以保障重要项目优先加载渲染,提升了人机交互的流畅度。
第一方面,本公开实施例提供了一种数据加载方法,所述方法包括:
在应用程序启动时,读取目标页面中各列表项各自的样式类型;
根据所述目标页面中各列表项各自的样式类型和预设的延迟加载样式类型,从所述目标页面中的各列表项中确定待延迟加载的列表项作为第一类列表项,并将所述目标页面中除去所述第一类列表项之外的其他列表项作为第二类列表项;
优先加载所述第二类列表项的数据并进行视图渲染,以及,针对所述第一类列表项的视图进行渲染但延迟加载所述第一类列表项的数据,待所述第二类列表项的数据加载并渲染完毕后,在所述第一类列表项的视图处渲染所述第一类列表项的数据。
在一种实施方式中,根据所述目标页面中各列表项各自的样式类型和预设的延迟加载样式类型,从所述目标页面中的各列表项中确定待延迟加载的列表项作为第一类列表项,包括:
从所述目标页面中的各列表项中确定与预设的延迟加载样式类型匹配的第一个列表项作为第一类列表项。
在一种实施方式中,针对所述第一类列表项的视图进行渲染,包括:
按照预设的白色背景渲染所述第一类列表项的视图控件。
在一种实施方式中,按照预设的白色背景渲染所述第一类列表项的视图控件,包括:
获取与所述第一类列表项的样式类型对应的列表高度信息;
将所述列表高度信息作为预设的白色背景的高度信息,并按照预设的白色背景的高度信息渲染所述第一类列表项的视图控件。
在一种实施方式中,所述在应用程序启动时,读取目标页面中各列表项各自的样式类型,包括:
在应用程序的冷启动阶段,读取首屏中各列表项各自的样式类型。
在一种实施方式中,所述样式类型包括以下类型中的一种:无图、大图、多图以及视频类型。
在一种实施方式中,根据所述目标页面中各列表项各自的样式类型和预设的延迟加载样式类型,从所述目标页面中的各列表项中确定待延迟加载的列表项,包括:
针对所述目标页面中各列表项包括的每个列表项,判断该列表项的样式类型与预设的延迟加载样式类型是否匹配;
若匹配成功,则确定该列表项为待延迟加载的列表项。
在一种实施方式中,确定该列表项为待延迟加载的列表项,包括:
若所述列表项的样式类型与预设的延迟加载样式类型匹配成功,则读取该列表项加载所需数据的数据量;
在读取的所述数据量大于预设阈值的情况下,确定该列表项为待延迟加载的列表项。
第二方面,本公开还提供了一种数据加载的装置,所述装置包括:
读取模块,用于在应用程序启动时,读取目标页面中各列表项各自的样式类型;
确定模块,用于根据所述目标页面中各列表项各自的样式类型和预设的延迟加载样式类型,从所述目标页面中的各列表项中确定待延迟加载的列表项作为第一类列表项,并将所述目标页面中除去所述第一类列表项之外的其他列表项作为第二类列表项;
加载模块,用于优先加载所述第二类列表项的数据并进行视图渲染,以及,针对所述第一类列表项的视图进行渲染但延迟加载所述第一类列表项的数据,待所述第二类列表项的数据加载并渲染完毕后,在所述第一类列表项的视图处渲染所述第一类列表项的数据。
第三方面,本公开还提供了一种计算机设备,包括:处理器、存储器和总线,所述存储器存储有所述处理器可执行的机器可读指令,当计算机设备运行时,所述处理器与所述存储器之间通过总线通信,所述机器可读指令被所述处理器执行时执行如第一方面及其各种实施方式任一所述的数据加载的方法的步骤。
第四方面,本公开还提供了一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器运行时执行如第一方面及其各种实施方式任一所述的数据加载的方法的步骤。
采用上述方案,其在应用程序启动时,首先可以读取目标页面中各列表项各自的样式类型,而后可以根据目标页面中各列表项各自的样式类型和预设的延迟加载样式类型,从目标页面中的各列表项中确定待延迟加载的列表项作为第一类列表项,并能够将所述目标页面中除去所述第一类列表项之外的其他列表项作为第二类列表项。也即,可以基于样式类型匹配将目标页面中的多个列表项划分为两类列表项(即第一类列表项和第二类列表项)。
针对第二类列表项这一普通列表项可以优先加载数据并进行视图渲染,与此同时,可以针对第一类列表项这一延迟列表项仅进行视图渲染,但并不进行数据加载,这主要是考虑到对于加载耗时较长的第一类列表项而言,如果直接进行数据加载将导致整个目标页面的加载卡顿问题,因而,本公开可以待第二类列表项的数据加载并渲染完毕后,再加载第一类列表项的数据,从而避免了加载卡顿问题,提升了人际交互的流畅度,与此同时,由于在进行第二类列表项的数据加载过程中还对第一类列表项进行了视图渲染,因而,整个目标页面得以完整展示,使得应用程序的使用体验也较佳。
为使本公开的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。
附图说明
为了更清楚地说明本公开实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,此处的附图被并入说明书中并构成本说明书中的一部分,这些附图示出了符合本公开的实施例,并与说明书一起用于说明本公开的技术方案。应当理解,以下附图仅示出了本公开的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1示出了本公开实施例一所提供的一种数据加载的方法的流程图;
图2(a)示出了本公开实施例一所提供的数据加载的方法的应用示意图;
图2(b)示出了本公开实施例一所提供的数据加载的方法的应用示意图;
图3示出了本公开实施例二所提供的一种数据加载的装置的示意图;
图4示出了本公开实施例三所提供的一种计算机设备的示意图。
具体实施方式
为使本公开实施例的目的、技术方案和优点更加清楚,下面将结合本公开实施例中附图,对本公开实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本公开一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本公开实施例的组件可以以各种不同的配置来布置和设计。因此,以下对在附图中提供的本公开的实施例的详细描述并非旨在限制要求保护的本公开的范围,而是仅仅表示本公开的选定实施例。基于本公开的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本公开保护的范围。
经研究发现,在信息流展示之前,由于不同样式的列表项所需要的加载时间不同,这导致耗时较长的列表项样式在展示分区内无法及时显示,从而降低了人机交互的流畅度。
基于上述研究,本公开提供了至少一种数据加载的方案,能够基于实际业务需求灵活配置延迟加载样式类型,进而灵活控制页面数据加载的优先级,使得页面数据的加载按照优先次序依次进行,以保障重要项目优先加载渲染,提升了人机交互的流畅度。
针对以上方案所存在的缺陷,均是发明人在经过实践并仔细研究后得出的结果,因此,上述问题的发现过程以及下文中本公开针对上述问题所提出的解决方案,都应该是发明人在本公开过程中对本公开做出的贡献。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。
为便于对本实施例进行理解,首先对本公开实施例所公开的一种数据加载的方法进行详细介绍,本公开实施例所提供的数据加载的方法的执行主体一般为具有一定计算能力的计算机设备,该计算机设备例如包括:终端设备或其它处理设备,终端设备可以为用户设备(User Equipment,UE)、移动设备、用户终端、终端、蜂窝电话、无绳电话、个人数字处理(Personal Digital Assistant,PDA)、手持设备、计算设备、车载设备、可穿戴设备等。在一些可能的实现方式中,该数据加载的方法可以通过处理器调用存储器中存储的计算机可读指令的方式来实现。
下面以执行主体为终端设备为例对本公开实施例提供的数据加载的方法加以说明。
实施例一
参见图1所示,为本公开实施例一提供的数据加载的方法的流程图,方法包括步骤S101~S103,其中:
S101、在应用程序启动时,读取目标页面中各列表项各自的样式类型;
S102、根据目标页面中各列表项各自的样式类型和预设的延迟加载样式类型,从目标页面中的各列表项中确定待延迟加载的列表项作为第一类列表项,并将目标页面中除去第一类列表项之外的其他列表项作为第二类列表项;
S103、优先加载第二类列表项的数据并进行视图渲染,以及,针对第一类列表项的视图进行渲染但延迟加载第一类列表项的数据,待第二类列表项的数据加载并渲染完毕后,在第一类列表项的视图处渲染第一类列表项的数据。
这里,为了便于理解本公开实施例提供的数据加载的方法,首先对该数据加载的方法的应用场景进行简单说明。在设置于终端设备上的应用程序启动时,呈现于该应用程序上的信息流加载界面(即目标页面)也可以随之启动,而不同的应用程序,其所呈现的信息流加载界面也不同。例如针对新闻类应用程序而言,可以呈现包含多条新闻的信息流加载界面。由于不同新闻所对应的列表项样式并不一定相同,而不同的列表项样式所对应的加载时间并不相同,例如,图片这一列表项的加载时间远远小于视频这一列表项样式的加载时间,这样,在将上述两种列表项样式展示在同一信息流加载界面中时,往往会由于视频过长的加载时间而导致整个加载界面在进行信息流加载时的流畅度较差。
正是为了解决上述问题,本公开才提供了一种通过列表项分类实现延迟列表项与普通列表项同步渲染但延迟加载的数据加载的方法,能够基于实际业务需求灵活配置延迟加载样式类型,进而灵活控制页面数据加载的优先级,使得页面数据的加载按照优先次序依次进行,以保障重要项目优先加载渲染,从而提升人际交互的流畅度。
本公开实施例提供的数据加载的方法在进行数据加载之前,可以在应用程序启动时,先基于读取的目标页面中各列表项各自的样式类型以及预设的延迟加载样式类型,将各列表项分类成待延迟加载的第一类列表项以及待正常加载的第二类列表项。
其中,考虑到应用程序所处的启动状态不同,其所确定的目标页面也不同。这里,可以应用于应用程序的冷启动阶段,所读取到的各列表项各自的样式类型可以是首屏中展示的样式类型。除此之外,本公开实施例还可以应用于应用程序退出后再启动的阶段,这里,读取的目标页面可以是在应用程序退出之后记录的页面,该页面所展示的各列表项各自的样式类型则对应读取的样式类型。这里的样式类型可以是无图、大图、多图以及视频类型。
需要说明的是,本公开实施例中预设的延迟加载样式类型可以是基于各样式类型的普遍加载时间所确定的加载样式类型,还可以是在应用程序的各个历史页面中展示的列表项中所筛选出的加载数据量比较大的列表项所对应的加载样式类型,例如,可以确定预先记录的该应用程序对应的历史页面中,加载数据的数据量大于预设阈值的历史列表项,这个/些历史列表项的样式类型,可以确定为延迟加载样式类型,从而可以适应不同应用程序的应用需求。
基于上述预设的延迟加载样式类型可以从各列表项中确定出第一类列表项,该第一类列表项可以是加载比较耗时的列表项,对应的可以是延迟加载样式类型,例如,可以是视频类型,第二类列表项则可以是加载比较快的列表项,该列表项对应的可以是普通加载样式类型,例如,可以是文字类型。
需要说明的是,本公开实施例中针对第一类列表项可以是基于第二类列表项而相对设置的,可以是基于所具体适用的应用程序来确定的,例如,在不同的应用程序中,图片这一加载样式即可以是预设的延迟加载样式,还可以是正常加载的普通样式,因此,本公开实施例可以基于不同的应用程序进行适用性设置,在此不做具体的限制。
基于上述描述可知的是,第一类列表项所需要的加载时间远远大于第二类列表项所需要的加载时间,如果两者一同加载,将会导致整个加载时间的延长。本公开实施例正是考虑到上述两类列表项的加载需求,才提供了一种分步加载方案,即优先加载耗时比较短的第二类列表项的数据并进行视图渲染,以及优先对耗时比较长的第一类列表项的视图进行渲染的,这样,在第二类列表项的数据加载并渲染完毕后,即可以在第一类列表项的视图处渲染对应的数据。
由于第一类列表项的视图渲染所占的资源较少,对应渲染耗时较短,因此可以随着第二类列表项的数据记载以及视图渲染过程来完成,这样,在目标页面可以同步展示出第一类列表项的全部数据以及渲染后的第一类列表项的视图,在降低了加载时延的前提下,还确保了视图加载的完整性,提升了人机交互的流畅度。
需要说明的是,上述第一类列表项和第二类列表项均可以包括一个列表项,还可以均包括多个列表项。在具体应用中,目标页面中可供展示的列表项可以是终端设备基于与应用服务器之间的通信情况,从应用服务器侧获取的,其中,不同的应用程序所对应的列表项的个数也可以不同,这里,还可以结合着远端服务器与终端设备之间的通信质量来确定列表项的个数,例如,在通信质量不佳的情况下,为了避免数据传输所带来的数据延迟,可以获取到的列表项个数相对较少。
在实际应用中,从服务器获取到的各列表项中通常会存在多个与预设的延迟加载样式类型匹配的列表项,这里,若同时对多个延迟加载列表项进行先渲染再加载的操作,将导致多个列表项的视图存在数据尚未加载的状态,因此,为了确保用户的体验度,在目标页面中的各列表项中存在多个与预设的延迟加载样式类型匹配的列表项时,这里可以选取一个延迟加载列表项进行渲染并加载。
本公开实施例中,可以随机选取,也可以依赖于各个与预设的延迟加载样式类型匹配的列表项在目标页面中的位置信息进行加载,可以选取第一个与预设的延迟加载样式类型匹配的列表项作为第一类列表项进行后续的渲染及相应的加载设置,这主要是考虑到针对展示的信息流,用户习惯性采用顺序浏览方式进行查看,从而进一步确保了用户的使用体验。
其中,本公开实施例在进行第一类列表项的加载之前,其需要依赖于该列表项对应的渲染背景,该背景可以作为一种渲染图层,在确定第二类列表项的数据加载并渲染完毕后,即可以将上述第一类列表项的数据内容加载在上述渲染图层上,以实现数据内容的最终展示。
这里,针对第一类列表项而言,可以首先按照预设的白色背景渲染该第一类列表项的视图控件。需要说明的是,所选用的渲染背景除了可以是白色背景,还可以是黑色背景或者其它颜色的背景。这里,为了进一步确保用户的使用体验度,可以选用白色背景,这主要是考虑到白色背景进行的视图渲染对用户的视觉所产生的干扰足够小。
本公开实施例中,为了确保后续进行第一类列表项的数据内容加载的完整性,这里,可以将第一类列表项对应的列表高度信息作为上述渲染背景的高度信息,进行第一类列表项的视图控件的渲染。
本公开实施例中,在进行第一类列表项的渲染的同时,还可以执行加载第二类列表项的数据并进行视图渲染的操作,其中,考虑到第二类列表项作为加载耗时时间较短的普通列表项,这里,可以直接进行相关视图渲染和数据加载,有关渲染和数据加载的具体过程在此不再赘述。
这样,在第一类列表项的渲染完毕以及第二类列表项的加载及渲染完毕之后,即可以在第一类列表项的视图处渲染第一类列表项的数据,也即,本公开实施例可以将第一类列表项的渲染背景与各个列表项中除第一类列表项之外的其它列表项进行加载,而后,再加载第一类列表项的数据内容,从而避免了相关技术中对延迟列表项无法及时加载所带来的人机交互流畅度差的问题,整个人机交互的流畅度得以大幅度提升。
为了便于进一步理解这一数据延迟加载的过程,接下来可以结合图2(a)~图2(b)进行示例说明。这里的第一类列表项包括一个列表项(对应图片列表项),第二类列表项包括两个列表项(对应第一文本列表项和第二文本列表项)。
这里,当前目标页面对应三个列表项,分别是属于第二类列表项的第一文本列表项和第二文本列表项,以及属于第一类列表项的图片列表项。这里,利用本公开实施例提供的数据加载的方法可以优先加载第一文本列表项的数据(对应第一文本数据)和第二文本列表项的数据(对应第二文本数据)并进行视图渲染,与此同时,还可以针对图片列表项进行渲染,这里,以白色背景渲染为例,如图2(a)所示。
这样,在上述第一文本数据和第二文本数据完成加载之后,即可以在白色背景处加载图片数据,渲染后的呈现效果,如图2(b)所示。
本公开实施例中,考虑到待延迟加载的列表项的确定对于后续进行延迟加载操作的关键作用,接下来可以通过进行具体描述。
这里,上述待延迟加载的列表项的确定过程可以通过如下步骤实现:
步骤一、针对目标页面中各列表项包括的每个列表项,判断该列表项的样式类型与预设的延迟加载样式类型是否匹配;
步骤二、若列表项的样式类型与预设的延迟加载样式类型匹配成功,则读取该列表项加载所需数据的数据量;
步骤三、在读取的数据量大于预设阈值的情况下,确定该列表项为待延迟加载的列表项。
这里,可以针对读取的每个列表项,进行该列表项的样式类型与预设的延迟加载样式类型的匹配,若成功匹配,则可以确定该列表项为待延迟加载的列表项。
在具体应用中,为了便于进行样式匹配,可以针对列表项设置相应的标识信息,该标识信息具有唯一性,用于标识列表项。也即,针对不同的列表项,其所对应的标识信息也是不同的。本公开实施例中可以预先为各个列表项确定标识信息,又考虑到本公开实施例所采用的信息流样式的广泛性,这里所选用的标识信息可以是依赖于列表项的数据类型、数据内容等信息生成的,从而能够实现对列表项的唯一标识。
这里,以应用程序的各个历史页面中展示的列表项中所筛选出的加载数据量比较大的列表项所对应的加载样式类型作为预设的延迟加载样式类型为例,上述匹配依赖于终端设备预先存储的应用程序对应的历史页面中,加载数据量比较大的列表项的标识信息,以及,应用程序启动后的当前目标页面中各个列表项的标识信息,也即,可以基于加载数据量比较大的列表项的标识信息对各个列表项的标识信息进行遍历搜索,一旦搜索到标识匹配的列表项,即可确定当前目标页面中包含加载数据量比较大的第一类列表项,也即可以确定出待延迟加载的列表项。
本公开实施例中,为了便于更快的实现上述搜索匹配过程,可以依赖于预设回调函数来具体实现。这里,首先可以获取用于对延迟列表项进行识别的预设回调函数,然后将各列表项的样式类型,以及预设的延迟加载样式类型输入至预设回调函数中,并可以针对预设回调函数成功返回响应值的列表项,确定该列表项的样式类型与预设的延迟加载样式类型匹配成功,以及针对预设回调函数返回响应值失败的列表项,确定该列表项的样式类型与预设的延迟加载样式类型匹配失败。也即,在具体应用中,可以基于一个预设回调函数同时对各个列表项的样式类型进行延迟加载样式的验证。
考虑到应用程序所应用的运行环境不同,其可采用的预设回调函数也不同。本公开实施例中,在上述应用程序应用于安卓(Android)运行环境中时可以采用自带的应用程序接口(Application Programming Interface,API)中onBindItemViewHolder类中的onBindItemViewHolder回调函数来具体实现上述搜索匹配过程。在上述应用程序应用于其它运行环境中,可以采用相应的回调函数来具体实现,这里不再赘述。
需要说明的是,本公开实施例中,在进行待延迟加载的列表项确定的过程中,还可以结合列表项加载所需数据的数据量进行确定,这里,可以将数据量大于预设阈值的列表项确定为待延迟加载的列表项
这里,有关记载所需数据的数据量可以依赖于数据类型及数据内容,又考虑到列表项的列表高度信息对加载所需数据的数据量(即记载数据量)的影响,这里还可以结合高度信息进行加载数据量的确定。
本公开实施例中,高度信息越大的列表项所对应的加载数据量也越大,数据内容越多的列表项所对应的加载数据量也越大,而针对数据类型而言,图片这一数据类型所对应的加载数据量将远远小于视频这一数据类型所对应的加载数据量,而文本所对应的这一数据类型所对应的加载数据量将远远小于图片、视频等数据类型所对应的加载数据量。然而,数据内容越多的一个列表项并不一定比一个数据内容较少的列表项所对应的加载数据量多,例如,针对一张图片精度比较高的小图和一段文字而言,小图所对应的数据内容的丰富度会小于一段文字的数据内容的丰富度,因此,本公开实施例可以是结合上述数据类型、数据内容、高度信息等确定加载数据量的。
本公开实施例中的加载数据量可以直接影响列表项的加载时间,这里,可以将加载时间大于300毫秒(ms)的列表项确定为待延迟加载的列表项。
本领域技术人员可以理解,在具体实施方式的上述方法中,各步骤的撰写顺序并不意味着严格的执行顺序而对实施过程构成任何限定,各步骤的具体执行顺序应当以其功能和可能的内在逻辑确定。
基于同一发明构思,本公开实施例中还提供了与数据加载的方法对应的数据加载的装置,由于本公开实施例中的装置解决问题的原理与本公开实施例上述数据加载的方法相似,因此装置的实施可以参见方法的实施,重复之处不再赘述。
实施例二
参照图3所示,为本公开实施例二提供的一种数据加载的装置的示意图,装置包括:读取模块301、确定模块302、加载模块303;其中,
读取模块301,用于在应用程序启动时,读取目标页面中各列表项各自的样式类型;
确定模块302,用于根据目标页面中各列表项各自的样式类型和预设的延迟加载样式类型,从目标页面中的各列表项中确定待延迟加载的列表项作为第一类列表项,并将目标页面中除去第一类列表项之外的其他列表项作为第二类列表项;
加载模块303,用于优先加载第二类列表项的数据并进行视图渲染,以及,针对第一类列表项的视图进行渲染但延迟加载第一类列表项的数据,待第二类列表项的数据加载并渲染完毕后,在第一类列表项的视图处渲染第一类列表项的数据。
本公开实施例针对第二类列表项这一普通列表项可以优先加载数据并进行视图渲染,与此同时,可以针对第一类列表项这一延迟列表项仅进行视图渲染,但并不进行数据加载,这主要是考虑到对于加载耗时较长的第一类列表项而言,如果直接进行数据加载将导致整个目标页面的加载卡顿问题,因而,本公开可以待第二类列表项的数据加载并渲染完毕后,再加载第一类列表项的数据,从而避免了加载卡顿问题,提升了人际交互的流畅度,与此同时,由于在进行第二类列表项的数据加载过程中还对第一类列表项进行了视图渲染,因而,整个目标页面得以完整展示,使得应用程序的使用体验也较佳。
在一种实施方式中,确定模块302,用于按照以下步骤根据目标页面中各列表项各自的样式类型和预设的延迟加载样式类型,从目标页面中的各列表项中确定待延迟加载的列表项作为第一类列表项:
从目标页面中的各列表项中确定与预设的延迟加载样式类型匹配的第一个列表项作为第一类列表项。
在一种实施方式中,加载模块303,用于按照以下步骤针对第一类列表项的视图进行渲染:
按照预设的白色背景渲染第一类列表项的视图控件。
在一种实施方式中,加载模块303,用于按照以下步骤按照预设的白色背景渲染第一类列表项的视图控件:
获取与第一类列表项的样式类型对应的列表高度信息;
将列表高度信息作为预设的白色背景的高度信息,并按照预设的白色背景的高度信息渲染第一类列表项的视图控件。
在一种实施方式中,读取模块301,用于按照以下步骤在应用程序启动时,读取目标页面中各列表项各自的样式类型:
在应用程序的冷启动阶段,读取首屏中各列表项各自的样式类型。
在一种实施方式中,样式类型包括以下类型中的一种:无图、大图、多图以及视频类型。
在一种实施方式中,确定模块302,用于按照以下步骤根据目标页面中各列表项各自的样式类型和预设的延迟加载样式类型,从目标页面中的各列表项中确定待延迟加载的列表项:
针对目标页面中各列表项包括的每个列表项,判断该列表项的样式类型与预设的延迟加载样式类型是否匹配;
若列表项的样式类型与预设的延迟加载样式类型匹配成功,则读取该列表项加载所需数据的数据量;
在读取的数据量大于预设阈值的情况下,确定该列表项为待延迟加载的列表项。
实施例三
本公开实施例还提供了一种计算机设备,如图4所示,为本公开实施例提供的计算机设备结构示意图,包括:处理器401、存储器402、和总线403。存储器402存储有处理器401可执行的机器可读指令(比如,图3中的数据加载的装置中读取模块301、确定模块302、加载模块303对应的执行指令等),当计算机设备运行时,处理器401与存储器402之间通过总线403通信,机器可读指令被处理器401执行时执行如下处理:
在应用程序启动时,读取目标页面中各列表项各自的样式类型;
根据目标页面中各列表项各自的样式类型和预设的延迟加载样式类型,从目标页面中的各列表项中确定待延迟加载的列表项作为第一类列表项,并将目标页面中除去第一类列表项之外的其他列表项作为第二类列表项;
优先加载第二类列表项的数据并进行视图渲染,以及,针对第一类列表项的视图进行渲染但延迟加载第一类列表项的数据,待第二类列表项的数据加载并渲染完毕后,在第一类列表项的视图处渲染第一类列表项的数据。
在一种实施方式中,上述处理器401执行的指令中,根据目标页面中各列表项各自的样式类型和预设的延迟加载样式类型,从目标页面中的各列表项中确定待延迟加载的列表项作为第一类列表项,包括:
从目标页面中的各列表项中确定与预设的延迟加载样式类型匹配的第一个列表项作为第一类列表项。
在一种实施方式中,上述处理器401执行的指令中,针对第一类列表项的视图进行渲染,包括:
按照预设的白色背景渲染第一类列表项的视图控件。
在一种实施方式中,上述处理器401执行的指令中,按照预设的白色背景渲染第一类列表项的视图控件,包括:
获取与第一类列表项的样式类型对应的列表高度信息;
将列表高度信息作为预设的白色背景的高度信息,并按照预设的白色背景的高度信息渲染第一类列表项的视图控件。
在一种实施方式中,上述处理器401执行的指令中,在应用程序启动时,读取目标页面中各列表项各自的样式类型,包括:
在应用程序的冷启动阶段,读取首屏中各列表项各自的样式类型。
在一种实施方式中,所述样式类型包括以下类型中的一种:无图、大图、多图以及视频类型。
在一种实施方式中,上述处理器401执行的指令中,根据目标页面中各列表项各自的样式类型和预设的延迟加载样式类型,从目标页面中的各列表项中确定待延迟加载的列表项,包括:
针对目标页面中各列表项包括的每个列表项,判断该列表项的样式类型与预设的延迟加载样式类型是否匹配;
若列表项的样式类型与预设的延迟加载样式类型匹配成功,则读取该列表项加载所需数据的数据量;
在读取的数据量大于预设阈值的情况下,确定该列表项为待延迟加载的列表项。
本公开实施例还提供一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器运行时执行上述方法实施例一中所述的数据加载的方法的步骤。其中,该存储介质可以是易失性或非易失的计算机可读取存储介质。
本公开实施例一所提供的数据加载的方法的计算机程序产品,包括存储了程序代码的计算机可读存储介质,所述程序代码包括的指令可用于执行上述方法实施例一中所述的数据加载的方法的步骤,具体可参见上述方法实施例,在此不再赘述。
本公开实施例还提供一种计算机程序,该计算机程序被处理器执行时实现前述实施例的任意一种方法。该计算机程序产品可以具体通过硬件、软件或其结合的方式实现。在一个可选实施例中,所述计算机程序产品具体体现为计算机存储介质,在另一个可选实施例中,计算机程序产品具体体现为软件产品,例如软件开发包(Software DevelopmentKit,SDK)等等。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的***和装置的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。在本公开所提供的几个实施例中,应该理解到,所揭露的***、装置和方法,可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,又例如,多个单元或组件可以结合或者可以集成到另一个***,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些通信接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本公开各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个处理器可执行的非易失的计算机可读取存储介质中。基于这样的理解,本公开的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本公开各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-OnlyMemory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
最后应说明的是:以上所述实施例,仅为本公开的具体实施方式,用以说明本公开的技术方案,而非对其限制,本公开的保护范围并不局限于此,尽管参照前述实施例对本公开进行了详细的说明,本领域的普通技术人员应当理解:任何熟悉本技术领域的技术人员在本公开揭露的技术范围内,其依然可以对前述实施例所记载的技术方案进行修改或可轻易想到变化,或者对其中部分技术特征进行等同替换;而这些修改、变化或者替换,并不使相应技术方案的本质脱离本公开实施例技术方案的精神和范围,都应涵盖在本公开的保护范围之内。因此,本公开的保护范围应所述以权利要求的保护范围为准。