识别页面中资源类型的方法、装置、设备和储存介质与流程

文档序号:16327795发布日期:2018-12-19 06:01阅读:219来源:国知局
识别页面中资源类型的方法、装置、设备和储存介质与流程

本发明实施例涉及互联网技术领域,尤其涉及一种识别页面中资源类型的方法、装置、设备和储存介质。

背景技术

页面的性能问题一直是互联网产品开发过程中的重要一环,很多公司也一直在使用各种方式监控产品的页面性能。从控制台工具、抓包工具,到使用domcontentloaded和document.onreadystatechange,再到使用第三方工具如webpagetest、pingdom等通过在不同的浏览器环境和地域进行测试来寻求优化建议等等,这些方式不仅麻烦,而且测量的指标比较单一。如果有一些可以帮我们直接获取页面性能信息的应用程序编程接口(applicationprogramminginterface,api)出现,并且成为标准被浏览器厂商支持,那性能监控会不会又是另一幅蓝图。

好在万维网联盟(worldwidewebconsortium,w3c)web性能工作小组与各浏览器厂商都已认识到性能对于web开发的重要性,为了解决当前性能测试的困难,w3c推出了一套性能api标准,各种浏览器对这套标准的支持如今也逐渐成熟起来。这套api的目的是简化开发者对网站性能进行精确分析与控制的过程,方便开发者采取手段提高web性能。

其中,w3c推出了一个resourcetiming的标准规范草案,该标准为web应用定义了一组接口,通过调用这个接口去进行性能分析,但是这个接口的返回数据结果并不一定是真正的资源类型,如一个层叠样式表(cascadingstylesheets,css)中的背景图片资源,它的真实类型是jpg,但是通过该接口返回的是css类型,这样就会影响性能分析的准确性。



技术实现要素:

鉴于现有技术中的上述缺陷或不足,期望提供一种识别页面中资源类型的方法、装置、设备和储存介质,可以确定页面中资源的真正类型,从而提高页面性能分析的准确性。

第一方面,本发明实施例提供一种识别页面中资源类型的方法,包括:

获取待测试页面中的资源类性能数据,所述资源类性能数据中包含表征页面加载资源的资源文件类型的字段信息;

解析所述字段信息获取资源文件类型;

根据所述资源文件类型和预先设置的文件类型组确定资源的真实类型。

第二方面,本发明实施例还提供一种识别页面中资源类型的装置,包括:

信息获取模块,用于获取待测试页面中的资源类性能数据,所述资源类性能数据中包含表征页面加载资源的资源文件类型的字段信息;

文件类型解析模块,用于解析所述字段信息获取资源文件类型;

资源类型确定模块,用于根据所述资源文件类型和预先设置的文件类型组确定资源的真实类型。

第三方面,本发明实施例还提供一种设备,包括:

一个或多个处理器;

存储器,用于存储一个或多个程序,

当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器执行本发明实施例第一方面所述的方法。

第四方面,本发明实施例还提供一种存储有计算机程序的计算机可读存储介质,该程序被处理器执行时实现本发明实施例第一方面所述的方法。

根据本发明实施例提供的技术方案,通过获取待测试页面中的资源类性能数据,通过解析所述资源类性能数据中包含的表征页面加载资源的资源文件类型的字段信息得到资源文件类型,进一步根据所述资源文件类型和预先设置的文件类型组确定资源的真实类型,能够准确识别出资源的真实类型。从而提高页面性能分析的准确性。

附图说明

通过阅读参照以下附图所作的对非限制性实施例所作的详细描述,本发明的其它特征、目的和优点将会变得更明显:

图1为本发明实施例一提供的识别页面中资源类型的方法的流程示意图;

图2为本发明实施例二提供的识别页面中资源类型的装置的结构示意图;

图3为本发明实施例三提供的设备的结构示意图。

具体实施方式

下面结合附图和实施例对本发明作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释相关发明,而非对该发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与发明相关的部分。

需要说明的是,在不冲突的情况下,本发明中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本发明。

实施例一

图1为本发明实施例一提供的识别页面中资源类型的方法的流程示意图,本实施例的执行主体,可为本发明实施例提供的识别页面中资源类型的装置,该装置可以集成于移动终端设备(例如,智能手机、平板电脑等),也可以集成于固定终端(台式电脑)或服务器中,该识别页面中资源类型的装置可以采用硬件或软件实现。下面将结合实施例进行说明,如图1所示,具体包括:

s101、获取待测试页面中的资源类性能数据,所述资源类性能数据中包含表征页面加载资源的资源文件类型的字段信息。

其中,字段信息中包含表征资源文件类型的字符串,具体可以为加载资源的网址,也可以为包含资源文件类型的字段。

一种实现本步骤的具体方式为,向待测试页面发送指令,通过该指令获取资源类性能数据。

具体的,可通过windows.performance.getentries()指令获取资源类性能数据。

可选的,在向待测试页面发送指令之前,本实施还可包括如下打开待测试网页的相关步骤:通过chrome-launcher打开一chrome浏览器,通过chrome-remote-interface协议调用chrome浏览器,开启页面跳转监听,调用页面跳转接口,打开待测试网页。

s102、解析所述字段信息获取资源文件类型。

其中,资源文件类型包括但不限于以下任意一种:jpg、jpeg、png、git、webp、svg、ico、js、css、html、woff、woff2、ttf、eot、otf、swf和map。

可选的,所述字段信息中包含name字段,其中name字段包含至少一个字符串。相应的,一种实现本步骤的具体方式为:对所述name字段中包含的字符串进行识别;根据识别结果确定资源文件类型。

进一步的,根据识别结果确定资源文件类型可分如下两种情况实现:

第一种情况,如果所述name字段中不包含http字符串,则说明所述name字段中不包含网址信息,则对所述name字段进行字符串切割,获取表征资源文件类型的字符串;根据所述字符串确定资源文件类型。具体的,将name字段用”:”切割,资源文件类型通常为第一段字符串。例如name字段为jpg:aaaaa,被切割为jpg和aaaaa两段字符串,那么可判断资源文件类型为第一段字符串jpg。

第二种情况,如果所述name字段中包含http字符串,则说明该则name字段为资源的网址,则按照正则表达式去匹配网址信息;根据匹配结果确定资源文件类型。例如,正则表达式可选为“/://(.[^/]+)([^?]*)\??(.*)/”,用其去匹配如下网址:

://www.waitsun.com/wp-content/themes/qstm/static/css/bootstrap.min.css?ver=1.112

可得到如下匹配结果:

://www.waitsun.com/wp-content/themes/qstm/static/css/bootstrap.min.css?ver=1.112

www.waitsun.com

/wp-content/themes/qstm/static/css/bootstrap.min.css

ver=1.112

然后取第三段匹配到的字符串,按照“/”符号去切割,返回最后一段字符串即css,该css即为资源文件类型。

s103、根据所述资源文件类型和预先设置的文件类型组确定资源的真实类型。

其中,文件类型组可以为一个或多个,每个文件类型组中至少包含一个文件类型,该文件类型包括但不限于以下任意一种:jpg、jpeg、png、git、webp、svg、ico、js、css、html、woff、woff2、ttf、eot、otf、swf和map。

在本步骤执行之前,可预先统计网页中加载资源的常见类型,然后将其分类得到至少一个文件类型组,并建立文件类型组和资源的真实类型间的对应关系,本步骤在具体实现时,可根据该对应关系确定资源的真实类型。例如,如下表一所示,该对应关系可以以列表的形式存在:

表一

关于本步骤,其中一种可选的实现方式为,如果所述资源文件类型在其中任意一个文件类型组中,则根据所在的文件类型组确定资源的真实类型。具体的,可根据预先设定的文件类型组和资源的真实类型间的对应关系,例如,查询上述表一确定资源的真实类型。

例如,如果所述资源文件类型在第一文件类型组中,则确定资源的真实类型为image类型;如果所述资源文件类型在第二文件类型组中,则确定资源的真实类型为js类型;如果所述资源文件类型在第三文件类型组中,则确定资源的真实类型为css类型;如果所述资源文件类型在第四文件类型组中,则确定资源的真实类型为html类型;如果所述资源文件类型在第五文件类型组中,则确定资源的真实类型为font类型;如果所述资源文件类型在第六文件类型组中,则确定资源的真实类型为flash类型;如果所述资源文件类型在第七文件类型组中,则确定资源的真实类型为source-map类型。

其中另一种可选的实现方式为,如果资源文件类型不在上述任意一个文件类型组中,则根据所述资源发起类型确定资源的真实类型。其中,资源发起类型包含在资源类性能数据中,即在获取待测试页面中的资源类性能数据时,即可得到资源发起类型。

其中,资源发起类型包括但不限于以下任意一种:xmlhttprequest、img、script、internal和iframe。

可选的,如果所述资源发起类型为xmlhttprequest类型,则确定资源的真实类型为ajax类型;如果所述资源发起类型为img类型,则确定资源的真实类型为image类型;如果所述资源发起类型为script类型,则确定资源的真实类型为js类型;如果所述资源发起类型为internal和iframe类型中的任意一种,则确定资源的真实类型为html类型。

其中另一种可选的实现方式为,如果根据所述资源文件类型和所述资源发起类型都不能确定资源的真实类型,则将资源的真实类型识别为other类型。

本发明实施例通过获取待测试页面中的资源类性能数据,通过解析所述资源类性能数据中包含的表征页面加载资源的资源文件类型的字段信息得到资源文件类型,进一步根据所述资源文件类型和预先设置的文件类型组确定资源的真实类型,能够准确识别出资源的真实类型。从而提高页面性能分析的准确性。

实施例二

图2为本发明实施例二提供的识别页面中资源类型的装置的结构示意图,该装置可以集成于移动终端设备(例如,智能手机、平板电脑等),也可以集成于固定终端(台式电脑)或服务器中,该识别页面中资源类型的装置可以采用硬件或软件实现。下面将结合实施例进行说明,如图2所示,具体包括:信息获取模块201、文件类型解析模块202和资源类型确定模块203;

信息获取模块201用于获取待测试页面中的资源类性能数据,所述资源类性能数据中包含表征页面加载资源的资源文件类型的字段信息;

文件类型解析模块202用于解析所述字段信息获取资源文件类型;

可选的,所述字段信息中包含name字段;相应的,所述文件类解析模块202包括:字符串识别单元和文件类型确定单元;

其中,字符串识别单元用于对所述name字段中包含的字符串进行识别;

其中,文件类型确定单元用于根据识别结果确定资源文件类型。

进一步的,所述文件类型确定单元具体用于:如果所述name字段中不包含http字符串,则对所述name字段进行字符串切割,获取表征资源文件类型的字符串;根据所述字符串确定资源文件类型。或,如果所述name字段中包含http字符串,则按照正则表达式去匹配网址信息;根据匹配结果确定资源文件类型。

资源类型确定模块203用于根据所述资源文件类型和预先设置的文件类型组确定资源的真实类型。

可选的,所述资源类型确定模块203具体用于:如果所述资源文件类型在其中任意一个文件类型组中,则根据所在的文件类型组确定资源的真实类型。

进一步的,所述资源类型确定模块203具体用于:如果所述资源文件类型在第一文件类型组中,则确定资源的真实类型为image类型,其中所述第一文件类型组中包含jpg、jpeg、png、git、webp、svg和ico类型中的至少一种;如果所述资源文件类型在第二文件类型组中,则确定资源的真实类型为js类型,其中所述第二文件类型组中包含js类型;如果所述资源文件类型在第三文件类型组中,则确定资源的真实类型为css类型,其中所述第三文件类型组中包含css类型;如果所述资源文件类型在第四文件类型组中,则确定资源的真实类型为html类型,其中所述第四文件类型组中包含html类型;如果所述资源文件类型在第五文件类型组中,则确定资源的真实类型为font类型,其中所述第五文件类型组中包含woff、woff2、ttf、eot和otf类型中的至少一种;如果所述资源文件类型在第六文件类型组中,则确定资源的真实类型为flash类型,其中所述第六文件类型组中包含swf类型;如果所述资源文件类型在第七文件类型组中,则确定资源的真实类型为source-map类型,其中所述第七文件类型组中包含map类型。

可选的,所述资源类性能数据中还包含资源发起类型;

相应的,所述资源类型确定模块203具体用于:如果所述资源文件类型不在任意一个文件类型组中,则根据所述资源发起类型确定资源的真实类型。

进一步的,所述资源类型确定模块203具体用于:如果所述资源发起类型为xmlhttprequest类型,则确定资源的真实类型为ajax类型;如果所述资源发起类型为img类型,则确定资源的真实类型为image类型;如果所述资源发起类型为script类型,则确定资源的真实类型为js类型;如果所述资源发起类型为internal和iframe类型中的任意一种,则确定资源的真实类型为html类型。

可选的,所述资源类型确定模块203还用于:如果根据所述资源文件类型和所述资源发起类型都不能确定资源的真实类型,则将资源的真实类型识别为other类型。

应当理解,本发明实施例中记载的诸模块和单元与图1描述的方法中的各个步骤相对应。由此,上文针对方法描述的操作和特征同样适用于该装置,在此不再赘述。该装置可以预先实现在电子设备的浏览器或其他安全应用中,也可以通过下载等方式而加载到电子设备的浏览器或其安全应用中。该装置中的相应模块可以与电子设备中的单元相互配合以实现本发明实施例的方案。

实施例三

图3为本发明实施例三提供的一种设备的结构示意图,其示出了适于用来实现本发明实施例的设备的结构示意图。

如图3所示,该设备包括中央处理单元(cpu)301,其可以根据存储在只读存储器(rom)302中的程序或者从存储部分308加载到随机访问存储器(ram)303中的程序而执行各种适当的动作和处理。在ram303中,还存储有系统操作所需的各种程序和数据。cpu301、rom302以及ram303通过总线304彼此相连。输入/输出(i/o)接口305也连接至总线304。

以下部件连接至i/o接口305:包括键盘、鼠标等的输入部分306;包括诸如阴极射线管(crt)、液晶显示器(lcd)等以及扬声器等的输出部分307;包括硬盘等的存储部分308;以及包括诸如lan卡、调制解调器等的网络接口卡的通信部分309。通信部分309经由诸如因特网的网络执行通信处理。驱动器310也根据需要连接至i/o接口305。可拆卸介质311,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器310上,以便于从其上读出的计算机程序根据需要被安装入存储部分308。

特别地,根据本发明公开的实施例,上文图1描述的过程可以被实现为计算机软件程序。例如,本发明的实施例包括一种计算机程序产品,其包括有形地包含在机器可读介质上的计算机程序,所述计算机程序包含用于执行图1的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分309从网络上被下载和安装,和/或从可拆卸介质311被安装。

附图中的流程图和框图,图示了按照本发明各种实施例的装置、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,所述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。

描述于本发明实施例中所涉及到的单元或模块可以通过软件的方式实现,也可以通过硬件的方式来实现。所描述的单元或模块也可以设置在处理器中,例如,可以描述为:一种处理器包括地址获取模块和异常判定模块。其中,这些单元或模块的名称在某种情况下并不构成对该单元或模块本身的限定,例如,地址获取模块还可以被描述为“用于获取地址的模块”。

作为另一方面,本发明还提供了一种计算机可读存储介质,该计算机可读存储介质可以是上述实施例中所述装置中所包含的计算机可读存储介质;也可以是单独存在,未装配入设备中的计算机可读存储介质。计算机可读存储介质存储有一个或者一个以上程序,所述程序被一个或者一个以上的处理器用来执行描述于本发明的识别页面中资源类型的的方法。

以上描述仅为本发明的较佳实施例以及对所运用技术原理的说明。本领域技术人员应当理解,本发明中所涉及的发明范围,并不限于上述技术特征的特定组合而成的技术方案,同时也应涵盖在不脱离所述发明构思的情况下,由上述技术特征或其等同特征进行任意组合而形成的其它技术方案。例如上述特征与本发明中公开的(但不限于)具有类似功能的技术特征进行互相替换而形成的技术方案。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1