发明内容
针对上述技术缺陷,本发明实施例的目的在于提供一种数据加载方法、装置及存储介质。
为实现上述目的,第一方面,本发明实施例提供了一种数据加载方法,包括:
当用户访问页面时,获取待加载图片的真实路径;所述页面包括网页页面或APP页面;
将所述真实路径替换为指定路径;
当所述待加载图片的图片元素出现在浏览器的可视区域内时,向数据库发起请求,并接收所述数据库根据所述请求得到的请求结果;
根据所述真实路径,将所述请求结果渲染至所述可视区域内,以完成所述待加载图片的加载显示。
进一步地,将所述真实路径替换为指定路径之后,所述方法还包括:
获取实际页面的大小、可视区域的大小、图片元素的尺寸及图片元素在所述实际页面上的实际位置;
根据所述实际页面的大小、可视区域的大小、图片元素的尺寸及图片元素在所述实际页面上的实际位置,确定所述待加载图片的图片元素是否出现在浏览器的可视区域内。
作为本申请的一种具体实施方式,所述方法具体包括:
若垂直方向包括元素1~4,水平方向包括元素5~8;
在元素1的位置处,元素1上边界与实际页面下边界的偏移距离小于可视区域下边界与实际页面下边界的距离,判断元素1在可视区域外;
在元素2的位置处,元素2上边界与实际页面下边界的偏移距离大于可视区域下边界与实际页面下边界的距离,判断元素2在可视区域内;
在元素3的位置处,元素3下边界与实际页面上边界的偏移距离大于可视区域上边界与实际页面上边界的距离,判断元素3在可视区域内;
在元素4的位置处,元素4下边界与实际页面上边界的偏移距离小于可视区域上边界与实际页面上边界的距离,判断元素4在可视区域外;
在元素5的位置处,元素5右边界与实际页面左边界的偏移距离小于可视区域左边界与实际页面左边界的距离,判断元素5在可视区域外;
在元素6的位置处,元素6右边界与实际页面左边界的偏移距离大于可视区域左边界与实际页面左边界的距离,判断元素6在可视区域内;
在元素7的位置处,元素7左边界与实际页面左边界的偏移距离大于可视区域左边界与实际页面左边界的距离,判断元素7在可视区域内;
在元素8的位置处,元素8左边界与实际页面左边界的偏移距离大于可视区域右边界与实际页面左边界的距离,判断元素8在可视区域外。
第二方面,本发明实施例提供了一种数据加载装置,包括:
获取单元,用于当用户访问页面时,获取待加载图片的真实路径;所述页面包括网页页面或APP页面;
替换单元,用于将所述真实路径替换为指定路径;
请求单元,用于当所述待加载图片的图片元素出现在浏览器的可视区域内时,向数据库发起请求,并接收所述数据库根据所述请求得到的请求结果;
渲染单元,用于根据所述真实路径,将所述请求结果渲染至所述可视区域内,以完成所述待加载图片的加载显示。
进一步地,该数据加载装置还包括判断单元,用于:
获取实际页面的大小、可视区域的大小、图片元素的尺寸及图片元素在所述实际页面上的实际位置;
根据所述实际页面的大小、可视区域的大小、图片元素的尺寸及图片元素在所述实际页面上的实际位置,确定所述待加载图片的图片元素是否出现在浏览器的可视区域内。
第三方面,本发明实施例提供了另一种数据加载装置,包括处理器、输入设备、输出设备和存储器,所述处理器、输入设备、输出设备和存储器相互连接,其中,所述存储器用于存储计算机程序,所述计算机程序包括程序指令,所述处理器被配置用于调用所述程序指令,执行上述第一方面的方法。
第四方面,本发明实施例提供了一种计算机可读存储介质,存储有计算机程序,所述计算机程序包括程序指令,所述程序指令当被处理器执行时使所述处理器执行上述第一方面的方法。
实施本发明实施例,将真实路径替换为指定路径,只有当待加载图片的图片元素出现在浏览器的可视区域内时,才向数据库发起请求,并将数据库返回的请求结果渲染至可视区域;在上述方法中,只需要发起一次请求,从而减轻了服务器压力,可以让加载好的页面更快地呈现在用户面前,有效解决了现有技术中的页面卡顿问题,提升了用户体验。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明的发明构思是:页面中的img元素,如果没有src属性,浏览器就不会发出请求去下载图片,也就没有请求,可提高性能。一旦通过java script设置了图片路径,浏览器才会发送请求。因此,当访问一个页面的时候,先把图片元素或是其他元素的背景图片路径替换成一张大小为1*1px图片的路径(这样就只需请求一次),只有当图片出现在浏览器的可视区域内时,才设置图片真正的路径,让图片显示出来。即,获取真正的路径,先把真正的路径存在元素的自定义属性里,要用的时候就取出来,再设置。
基于前述发明构思,请参考图1,本发明实施例提供了一种数据加载方法,包括:
S101,当用户访问页面时,获取待加载图片的真实路径。
其中,所述页面包括网页页面或APP页面。
S102,将所述真实路径替换为指定路径。
S103,当所述待加载图片的图片元素出现在浏览器的可视区域内时,向数据库发起请求,并接收所述数据库根据所述请求得到的请求结果。
S104,根据所述真实路径,将所述请求结果渲染至所述可视区域内,以完成所述待加载图片的加载显示。
进一步地,将所述真实路径替换为指定路径之后,所述方法还包括:
获取实际页面的大小、可视区域的大小、图片元素的尺寸及图片元素在所述实际页面上的实际位置;
根据所述实际页面的大小、可视区域的大小、图片元素的尺寸及图片元素在所述实际页面上的实际位置,确定所述待加载图片的图片元素是否出现在浏览器的可视区域内。
请参考图2,确定待加载图片的图片元素是否出现在浏览器的可视区域内的具体方法为:
垂直方向包括元素1~4,水平方向包括元素5~8。图2中外面最大的框为实际页面的大小,中间的框代表可视区域(也可称为父元素)的大小,小框1~8代表元素位于页面上的实际位置,小框的尺寸为图片元素的尺寸。
(1)在元素1的位置处,元素1上边界与实际页面下边界的偏移距离小于可视区域下边界与实际页面下边界的距离,判断元素1在可视区域外;
(2)在元素2的位置处,元素2上边界与实际页面下边界的偏移距离大于可视区域下边界与实际页面下边界的距离,判断元素2在可视区域内;
(3)在元素3的位置处,元素3下边界与实际页面上边界的偏移距离大于可视区域上边界与实际页面上边界的距离,判断元素3在可视区域内;
(4)在元素4的位置处,元素4下边界与实际页面上边界的偏移距离小于可视区域上边界与实际页面上边界的距离,判断元素4在可视区域外;
(5)在元素5的位置处,元素5右边界与实际页面左边界的偏移距离小于可视区域左边界与实际页面左边界的距离,判断元素5在可视区域外;
(6)在元素6的位置处,元素6右边界与实际页面左边界的偏移距离大于可视区域左边界与实际页面左边界的距离,判断元素6在可视区域内;
(7)在元素7的位置处,元素7左边界与实际页面左边界的偏移距离大于可视区域左边界与实际页面左边界的距离,判断元素7在可视区域内;
(8)在元素8的位置处,元素8左边界与实际页面左边界的偏移距离大于可视区域右边界与实际页面左边界的距离,判断元素8在可视区域外。
进一步地,将执行事件绑定到页面的滚动条上,一旦触发就向数据库发起请求,返回结果渲染到可视区后面,每次滚动都请求渲染一次,这样不仅可以减轻服务器的压力,而且可以让加载好的页面更快地呈现在用户面前,提升了用户体验效果。
从以上描述可以看出,本发明提供了一种数据按需加载方法,可以用在网页及一些APP页面。该方法将真实路径替换为指定路径,只有当待加载图片的图片元素出现在浏览器的可视区域内时,才向数据库发起请求,并将数据库返回的请求结果渲染至可视区域,从而减轻了服务器压力,可以让加载好的页面更快地呈现在用户面前,有效解决了现有技术中的页面卡顿问题,提升了用户体验。
基于相同的发明构思,本发明实施例提供了一种数据加载装置,如图3所示,包括:
获取单元10,用于当用户访问页面时,获取待加载图片的真实路径;所述页面包括网页页面或APP页面;
替换单元11,用于将所述真实路径替换为指定路径;
请求单元12,用于当所述待加载图片的图片元素出现在浏览器的可视区域内时,向数据库发起请求,并接收所述数据库根据所述请求得到的请求结果;
渲染单元13,用于根据所述真实路径,将所述请求结果渲染至所述可视区域内,以完成所述待加载图片的加载显示。
进一步地,该数据加载装置包括判断单元,用于:
获取实际页面的大小、可视区域的大小、图片元素的尺寸及图片元素在所述实际页面上的实际位置;
根据所述实际页面的大小、可视区域的大小、图片元素的尺寸及图片元素在所述实际页面上的实际位置,确定所述待加载图片的图片元素是否出现在浏览器的可视区域内。
其中,确定所述待加载图片的图片元素是否出现在浏览器的可视区域内,具体为:
若垂直方向包括元素1~4,水平方向包括元素5~8;
在元素1的位置处,元素1上边界与实际页面下边界的偏移距离小于可视区域下边界与实际页面下边界的距离,判断元素1在可视区域外;
在元素2的位置处,元素2上边界与实际页面下边界的偏移距离大于可视区域下边界与实际页面下边界的距离,判断元素2在可视区域内;
在元素3的位置处,元素3下边界与实际页面上边界的偏移距离大于可视区域上边界与实际页面上边界的距离,判断元素3在可视区域内;
在元素4的位置处,元素4下边界与实际页面上边界的偏移距离小于可视区域上边界与实际页面上边界的距离,判断元素4在可视区域外;
在元素5的位置处,元素5右边界与实际页面左边界的偏移距离小于可视区域左边界与实际页面左边界的距离,判断元素5在可视区域外;
在元素6的位置处,元素6右边界与实际页面左边界的偏移距离大于可视区域左边界与实际页面左边界的距离,判断元素6在可视区域内;
在元素7的位置处,元素7左边界与实际页面左边界的偏移距离大于可视区域左边界与实际页面左边界的距离,判断元素7在可视区域内;
在元素8的位置处,元素8左边界与实际页面左边界的偏移距离大于可视区域右边界与实际页面左边界的距离,判断元素8在可视区域外。
可选地,在本发明的另一优选实施例中,如图4所示,该数据加载装置可以包括:一个或多个处理器101、一个或多个输入设备102、一个或多个输出设备103和存储器104,上述处理器101、输入设备102、输出设备103和存储器104通过总线105相互连接。存储器104用于存储计算机程序,所述计算机程序包括程序指令,所述处理器101被配置用于调用所述程序指令执行上述方法实施例部分的方法。
应当理解,在本发明实施例中,所称处理器101可以是中央处理单元(CentralProcessing Unit,CPU),深度学习显卡(如:华为NPU,英伟达GPU,谷歌TPU)该处理器还可以是其他通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现成可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
输入设备102可以包括键盘等,输出设备103可以包括显示器(LCD等)、扬声器等。
该存储器104可以包括只读存储器和随机存取存储器,并向处理器101提供指令和数据。存储器104的一部分还可以包括非易失性随机存取存储器。例如,存储器104还可以存储设备类型的信息。
具体实现中,本发明实施例中所描述的处理器101、输入设备102、输出设备103可执行本发明实施例提供的数据加载方法的实施例中所描述的实现方式,在此不再赘述。
需要说明的是,本发明实施例中数据加载装置的具体工作流程及相关细节,请参考前述方法实施例部分,在此不再赘述。
进一步地,对应于前述方法及装置,本发明实施例还提供了一种可读存储介质存储有计算机程序,所述计算机程序包括程序指令,所述程序指令被处理器执行时实现:上述数据加载方法。
所述计算机可读存储介质可以是前述任一实施例所述的系统的内部存储单元,例如系统的硬盘或内存。所述计算机可读存储介质也可以是所述系统的外部存储设备,例如所述系统上配备的插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(SecureDigital,SD)卡,闪存卡(Flash Card)等。进一步地,所述计算机可读存储介质还可以既包括所述系统的内部存储单元也包括外部存储设备。所述计算机可读存储介质用于存储所述计算机程序以及所述系统所需的其他程序和数据。所述计算机可读存储介质还可以用于暂时地存储已经输出或者将要输出的数据。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另外,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口、装置或单元的间接耦合或通信连接,也可以是电的,机械的或其它的形式连接。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本发明实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以是两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分,或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-OnlyMemory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到各种等效的修改或替换,这些修改或替换都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。