CN111124530A - 浏览器首次渲染时间计算方法、装置、浏览器及存储介质 - Google Patents
浏览器首次渲染时间计算方法、装置、浏览器及存储介质 Download PDFInfo
- Publication number
- CN111124530A CN111124530A CN201911165491.4A CN201911165491A CN111124530A CN 111124530 A CN111124530 A CN 111124530A CN 201911165491 A CN201911165491 A CN 201911165491A CN 111124530 A CN111124530 A CN 111124530A
- Authority
- CN
- China
- Prior art keywords
- time
- browser
- external
- tag
- tags
- 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.)
- Granted
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/958—Organisation or management of web site content, e.g. publishing, maintaining pages or automatic linking
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/34—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
- G06F11/3409—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/445—Program loading or initiating
- G06F9/44521—Dynamic linking or loading; Link editing at or after load time, e.g. Java class loading
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Data Mining & Analysis (AREA)
- Information Transfer Between Computers (AREA)
Abstract
本发明实施例公开了一种浏览器首次渲染时间计算方法、装置、浏览器及存储介质。该方法包括:获取头部元素容器标签内的所有链接外部样式文件标签和所有立即同步执行外部脚本标签;获取所有链接外部样式文件标签和所有立即同步执行外部脚本标签的性能数据;从性能数据中分别确定各个链接外部样式文件标签和各个立即同步执行外部脚本标签的加载时间,分别作为资源加载时间;将资源加载时间中的最大值作为浏览器首次渲染时间。该方法可以近似计算首次渲染时间,无需侵入业务代码埋点近似计算,可操作性高,不会对业务代码产生影响。
Description
技术领域
本发明实施例涉及网页开发技术领域,尤其涉及一种浏览器首次渲染时间计算方法、装置、浏览器及存储介质。
背景技术
首次渲染时间是指浏览器开始显示内容的时间,是衡量全球广域网(World WideWeb,Web)用户体验的重要指标。通常认为浏览器开始渲染文档的主体<body>标签或者解析完文档的头部<head>标签的时刻就是首次渲染时间。大致过程分为浏览器与服务器建立链接、服务器处理响应浏览器请求、浏览器下载解析渲染显示页面。
现有技术中,首次渲染时间的主流计算方式是侵入业务代码埋点近似计算,在头部<head>标签开始处埋点确定开始时间;在头部<head>标签结束处埋点确定结束时间,通过结束时间与开始时间的差值确定首次渲染时间。一方面,开始时间与结束时间是一个近似时间,不是准确时间。因此,现有技术提供的计算方法准确性不高;另一方面,埋点需要侵入业务代码,可操作性不高,存在一定风险,侵入业务代码可能产生一些意料之外的问题,会对业务系统带来影响。
发明内容
本发明实施例提供了一种浏览器首次渲染时间计算方法、装置、浏览器及存储介质,可以近似计算首次渲染时间,可操作性高,不影响业务代码。
第一方面,本发明实施例提供了一种浏览器首次渲染时间计算方法,该方法包括:
获取头部元素容器标签内的所有链接外部样式文件标签和所有立即同步执行外部脚本标签;
获取所有链接外部样式文件标签和所有立即同步执行外部脚本标签的性能数据;
从所述性能数据中分别确定各个链接外部样式文件标签和各个立即同步执行外部脚本标签的加载时间,分别作为资源加载时间;
将所述资源加载时间中的最大值作为浏览器首次渲染时间。
第二方面,本发明实施例还提供了一种浏览器首次渲染时间计算装置,该装置包括:
标签获取模块,用于获取头部元素容器标签内的所有链接外部样式文件标签和所有立即同步执行外部脚本标签;
性能数据获取模块,用于获取所有链接外部样式文件标签和所有立即同步执行外部脚本标签的性能数据;
资源加载时间确定模块,用于从所述性能数据中分别确定各个链接外部样式文件标签和各个立即同步执行外部脚本标签的加载时间,分别作为资源加载时间;
浏览器首次渲染时间确定模块,用于将所述资源加载时间中的最大值作为浏览器首次渲染时间。
第三方面,本发明实施例还提供了一种浏览器,该浏览器包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序,
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如本发明任意实施例所述的一种浏览器首次渲染时间计算方法。
第四方面,本发明实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如本发明任意实施例所述的一种浏览器首次渲染时间计算方法。
本发明实施例通过获取头部元素容器标签内的所有链接外部样式文件标签和所有立即同步执行外部脚本标签;获取所有链接外部样式文件标签和所有立即同步执行外部脚本标签的性能数据;从性能数据中分别确定各个链接外部样式文件标签和各个立即同步执行外部脚本标签的加载时间,分别作为资源加载时间;将资源加载时间中的最大值作为浏览器首次渲染时间,解决了浏览器的首次渲染时间近似计算问题,实现了近似计算浏览器的首次渲染时间,无需侵入业务代码埋点近似计算,可操作性高,不会对业务代码产生影响的效果。
附图说明
图1是本发明实施例一提供一种浏览器首次渲染时间计算方法的流程图;
图2是本发明实施例二提供一种浏览器首次渲染时间计算方法的流程图;
图3本发明实施例二提供的一种浏览器首次渲染时间计算方法的使用流程图;
图4是本发明实施例三提供的一种浏览器首次渲染时间计算装置的结构示意图;
图5是本发明实施例四提供的一种浏览器的结构示意图。
具体实施方式
下面结合附图和实施例对本发明作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本发明,而非对本发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本发明相关的部分而非全部结构。
实施例一
图1是本发明实施例一提供一种浏览器首次渲染时间计算方法的流程图,本实施例可适用于浏览器不支持首次渲染时间接口时,近似计算浏览器首次渲染时间的情况,该方法可以由浏览器首次渲染时间计算装置来执行,该装置可以通过软件和/或硬件的方式实现,所述装置可以集成在处理器中,如图1所示,该方法具体包括:
步骤110、获取头部元素容器标签内的所有链接外部样式文件标签和所有立即同步执行外部脚本标签。
其中,在本发明实施例的一个实施方式中,可选的,通过指定选择器组的元素列表接口,获取头部元素容器标签内的所有链接外部样式文件标签和脚本标签。将头部元素容器标签内的延迟执行外部脚本标签、异步执行外部脚本标签和内联脚本标签进行过滤,得到所有外部样式文件标签和所有立即同步执行外部脚本标签。
其中,指定选择器组的元素列表接口可以是浏览器的document.querySelectorAll(‘head>link,head>script’)接口。可以通过该接口获取头部元素容器标签<head>内的所有链接外部样式文件标签<link>和脚本标签<script>,将脚本标签<script>中的延迟执行外部脚本标签、异步执行外部脚本标签和内联脚本标签进行过滤,得到所有立即同步执行外部脚本标签。其中,延迟执行外部脚本标签,即defer属性为true的<script>标签,和异步执行外部脚本标签,即async属性为true的<script>标签,是在页面已经部分加载或者页面已经完全加载之后执行的,因此在获取头部元素容器标签内的所有立即同步执行外部脚本标签时,需要将defer属性为true的<script>标签和async属性为true的<script>标签进行过滤。此外,内联脚本标签的执行是不需要进行加载的,在获取头部元素容器标签内的所有立即同步执行外部脚本标签时,需要将内联脚本标签也进行过滤。
步骤120、获取所有链接外部样式文件标签和所有立即同步执行外部脚本标签的性能数据。
其中,在本发明实施例的一个实施方式中,可选的,通过指定名称资源性能数据接口,获取所有链接外部样式文件标签和所有立即同步执行外部脚本标签的性能数据。其中,获取所有链接外部样式文件标签和所有立即同步执行外部脚本标签的性能数据可以是通过指定名称资源性能数据接口performance.getEntriesByName(name)接口。性能数据可以包括浏览器与服务器建立连接时间、安全请求时间、开始接收请求时间、请求响应时间、加载时间等。
步骤130、从性能数据中分别确定各个链接外部样式文件标签和各个立即同步执行外部脚本标签的加载时间,分别作为资源加载时间。
其中,从性能数据中可以确定各个链接外部样式文件标签和各个立即同步执行外部脚本标签的加载时间responseEnd,可以将各个加载时间分别作为对应标签的资源加载时间。
步骤140、将资源加载时间中的最大值作为浏览器首次渲染时间。
其中,通常认为浏览器开始渲染文档的主体<body>标签或者解析完文档的头部<head>标签的时刻就是首次渲染时间。解析完文档的头部<head>标签的时刻可以理解为头部<head>标签内资源加载时间中的最大值,因此,可以将资源加载时间中的最大值作为浏览器首次渲染时间。
在本发明实施例的一个实施方式中,可选的,将资源加载时间中的最大值作为浏览器首次渲染时间,包括:判断页面开始时间加上各个资源加载时间是否在过滤区间中;若是,将在过滤区间中的资源加载时间中的最大值作为浏览器首次渲染时间;否则,将所述过滤区间的时间极小值与页面开始时间的差值作为浏览器首次渲染时间。
在实际计算浏览器的首次渲染时间时,可能有浏览器的优化规则不遵循算法标准或者有数据出现异常的情况,为了进行降噪处理,可以判断页面开始时间加上各个资源加载时间是否在过滤区间,如果页面开始时间加上各个资源加载时间在过滤区间中,认为资源加载时间是符合条件的,合理的;如果页面开始时间加上各个资源加载时间不在过滤区间中,认为资源加载时间是不符合条件的,不合理的,需要过滤掉。而浏览器的首次渲染时间可以近似为符合条件的资源加载时间中的最大值。其中,各个资源加载时间都是相对于页面开始时间而言的,因此在判断资源加载时间是否符合条件时,需要加上页面开始时间。页面开始时间可以理解为浏览器页面最开始的时间,即在浏览器中输入网址的时间,可以是performance.timeing.navigationStart。如果没有符合条件的资源加载时间,可以将过滤区间的时间极小值与页面开始时间的差值作为浏览器首次渲染时间。
在本发明实施例的一个实施方式中,可选的,还包括:判断文档对象模型DOM开始解析时间是否大于0;若是,确定DOM开始解析时间为过滤区间的第一端点值;否则,确定页面返回时间为过滤区间的第一端点值;确定DOM就绪时间为过滤区间的第二端点值;第一端点值为过滤区间内的时间极小值,第二端点值为过滤区间内的时间极大值。
其中,过滤区间的左侧端点值,即第一端点值,可以是在文档对象模型(DocumentObject Model,DOM)的开始解析时间大于0时,确定为DOM开始解析时间,DOM开始解析时间可以是performance.timing.domLoading,浏览器开始解析html文件时间。通常认为浏览器的首次渲染时间最小值为DOM开始解析时间。事实上,正常情况下,DOM开始解析时间是大于0的;但是在一些异常情况中,也会存在DOM开始解析时间等于0的情况,这时为了近似计算浏览器的首次渲染时间可以取DOM开始解析时间之前的一个时间作为过滤区间的第一端点值,可以是取页面返回时间。页面返回时间可以理解为页面从服务器下载完成时间即响应网址请求,浏览器从服务器下载完页面的时间,可以是performance.timing.responseEnd。
而过滤区间的右侧端点值,即第二端点值,可以是DOM就绪时间performance.timing.domContentLoadedEventEnd,可以理解为DOM结构解析完毕、所有脚本运行完成时间。通常认为浏览器的首次渲染时间最大值为DOM就绪时间。为了判断资源加载时间是否符合条件,可以判断资源加载时间是否在过滤区间中,即判断资源加载时间是否在浏览器的首次渲染时间最小值和浏览器的首次渲染时间最大值构成的区间中。
本发明实施例通过获取头部元素容器标签内的所有链接外部样式文件标签和所有立即同步执行外部脚本标签;获取所有链接外部样式文件标签和所有立即同步执行外部脚本标签的性能数据;从性能数据中分别确定各个链接外部样式文件标签和各个立即同步执行外部脚本标签的加载时间,分别作为资源加载时间;将资源加载时间中的最大值作为浏览器首次渲染时间,解决了浏览器的首次渲染时间近似计算问题,实现了近似计算浏览器的首次渲染时间,无需侵入业务代码埋点近似计算,可操作性高,不会对业务代码产生影响的效果。
实施例二
图2是本发明实施例二提供一种浏览器首次渲染时间计算方法的流程图,本实施例是对上述技术方案的进行进一步细化,本实施例可以与上述一个或者多个实施例中的各个可选方案结合。
如图2所示,该方法具体包括:
步骤210、当浏览器不是谷歌浏览器和IE浏览器时,获取头部元素容器标签内的所有链接外部样式文件标签和所有立即同步执行外部脚本标签。
其中,当浏览器是高版本谷歌(Chrome)浏览器时,可以调用支持的首次渲染时间接口,如performance.getEntriesByType(‘paint’)[0].startTime接口获取高版本Chrome浏览器的首次渲染时间。当浏览器是低版本Chrome浏览器时,可以调用支持的首次渲染时间接口,如chrome.loadTimes().firstPaintTime接口获取低版本Chrome浏览器的首次渲染时间。当浏览器是IE(Internet Explorer)浏览器时,可以调用支持的首次渲染时间接口,如performance.timing.msFirstPaint接口获取IE浏览器的首次渲染时间。当浏览器不是Chrome浏览器和IE浏览器时,可以通过本发明实施例提供的浏览器首次渲染时间计算方法进行近似计算。
可选的,通过指定选择器组的元素列表接口,获取头部元素容器标签内的所有链接外部样式文件标签和脚本标签;将头部元素容器标签内的延迟执行外部脚本标签、异步执行外部脚本标签和内联脚本标签进行过滤,得到所有外部样式文件标签和所有立即同步执行外部脚本标签。
步骤220、获取所有链接外部样式文件标签和所有立即同步执行外部脚本标签的性能数据。
可选的,通过指定名称资源性能数据接口,获取所有链接外部样式文件标签和所有立即同步执行外部脚本标签的性能数据。
步骤230、从性能数据中分别确定各个链接外部样式文件标签和各个立即同步执行外部脚本标签的加载时间,分别作为资源加载时间。
步骤240、判断文档对象模型DOM开始解析时间是否大于0。
步骤250、若是,确定DOM开始解析时间为过滤区间的第一端点值;否则,确定页面返回时间为过滤区间的第一端点值。
步骤260、确定DOM就绪时间为过滤区间的第二端点值。
步骤270、判断页面开始时间加上各个资源加载时间是否在过滤区间中。
步骤280、若是,将在过滤区间中的资源加载时间中的最大值作为浏览器首次渲染时间;否则,将过滤区间的时间极小值与页面开始时间的差值作为浏览器首次渲染时间。
本发明实施例的技术方案,通过获取头部元素容器标签内的所有链接外部样式文件标签和所有立即同步执行外部脚本标签;获取所有链接外部样式文件标签和所有立即同步执行外部脚本标签的性能数据;从性能数据中分别确定各个链接外部样式文件标签和各个立即同步执行外部脚本标签的加载时间,分别作为资源加载时间;将资源加载时间中的最大值作为浏览器首次渲染时间,解决了浏览器的首次渲染时间近似计算问题,实现了在浏览器不支持首次渲染时间接口时,近似计算浏览器的首次渲染时间,无需侵入业务代码埋点近似计算,可操作性高,不会对业务代码产生影响的效果。
图3本发明实施例二提供的一种浏览器首次渲染时间计算方法的使用流程图,如图3所示,本发明实施例的一个使用过程可以:判断浏览器是否为高本版Chrome浏览器,若是,调用浏览器支持的首次渲染时间接口,获取浏览器的首次渲染时间。若不是,判断浏览器是否为低本版Chrome浏览器,若是,调用浏览器支持的首次渲染时间接口,获取首次渲染时间。若不是,判断浏览器是否为IE浏览器,若是,调用浏览器支持的首次渲染时间接口,获取首次渲染时间。若不是,获取头部元素容器标签内的所有链接外部样式文件标签和所有立即同步执行外部脚本标签,可以是调用指定选择器组的元素列表接口,获取头部元素容器标签内的所有链接外部样式文件标签和所有脚本标签;将头部元素容器标签内的延迟执行外部脚本标签、异步执行外部脚本标签和内联脚本标签进行过滤,得到所有外部样式文件标签和所有立即同步执行外部脚本标签。接着,调用指定名称资源性能数据接口,获取所有链接外部样式文件标签和所有立即同步执行外部脚本标签的性能数据。之后,从性能数据中分别确定各个链接外部样式文件标签和各个立即同步执行外部脚本标签的加载时间,分别作为资源加载时间。再之后,判断文档对象模型DOM开始解析时间是否大于0;若是,确定DOM开始解析时间为过滤区间的第一端点值;否则,确定页面返回时间为过滤区间的第一端点值;确定DOM就绪时间为过滤区间的第二端点值。判断页面开始时间加上各个资源加载时间是否在过滤区间中,若是,将在过滤区间中的资源加载时间中的最大值作为浏览器首次渲染时间;否则,将过滤区间的第一端点值与页面开始时间的差值作为浏览器首次渲染时间。
表1为本发明实施例提供的浏览器首次渲染时间计算方法与主流方法实验数据对比表,其中单位为毫秒。如表1所示,本实施例提供的方法计算浏览器的首次渲染时间的准确性较高,能够兼容多种浏览器。
表1实验数据对比表
浏览器 | 主流方法 | 本实施例方法 |
chrome | 315 | 733 |
IE | 847 | 907 |
火狐 | 510 | 687 |
实施例三
图4是本发明实施例三提供的一种浏览器首次渲染时间计算装置的结构示意图。结合图4,该装置包括:标签获取模块310,性能数据获取模块320,资源加载时间确定模块330和浏览器首次渲染时间确定模块340。
其中,标签获取模块310,用于获取头部元素容器标签内的所有链接外部样式文件标签和所有立即同步执行外部脚本标签;
性能数据获取模块320,用于获取所有链接外部样式文件标签和所有立即同步执行外部脚本标签的性能数据;
资源加载时间确定模块330,用于从性能数据中分别确定各个链接外部样式文件标签和各个立即同步执行外部脚本标签的加载时间,分别作为资源加载时间;
浏览器首次渲染时间确定模块340,用于将资源加载时间中的最大值作为浏览器首次渲染时间。
可选的,标签获取模块310,包括:标签获取单元,用于通过指定选择器组的元素列表接口,获取头部元素容器标签内的所有链接外部样式文件标签和所有脚本标签;标签过滤单元,用于将头部元素容器标签内的延迟执行外部脚本标签、异步执行外部脚本标签和内联脚本标签进行过滤,得到所有外部样式文件标签和所有立即同步执行外部脚本标签。
可选的,浏览器首次渲染时间确定模块340,包括:判断单元,用于判断页面开始时间加上各个资源加载时间是否在过滤区间中;浏览器首次渲染时间确定单元,用于若是,将在过滤区间中的资源加载时间中的最大值作为浏览器首次渲染时间;否则,将过滤区间的时间极小值与页面开始时间的差值作为浏览器首次渲染时间。
可选的,该装置,还包括:判断模块,用于判断文档对象模型DOM开始解析时间是否大于0;第一端点值确定模块,用于若是,确定DOM开始解析时间为过滤区间的第一端点值;否则,确定页面返回时间为过滤区间的第一端点值;第二端点值确定模块,用于确定DOM就绪时间为过滤区间的第二端点值;第一端点值为过滤区间内的时间极小值,第二端点值为过滤区间内的时间极大值。
可选的,标签获取模块310具体用于当浏览器不是谷歌浏览器和IE浏览器时,获取头部元素容器标签内的所有链接外部样式文件标签和所有立即同步执行外部脚本标签。
可选的,性能数据获取模块320具体用于通过指定名称资源性能数据接口,获取所有链接外部样式文件标签和所有立即同步执行外部脚本标签的性能数据。
本发明实施例所提供的一种浏览器首次渲染时间计算装置可执行本发明任意实施例所提供的一种浏览器首次渲染时间计算方法,具备执行方法相应的功能模块和有益效果。
实施例四
图5是本发明实施例四提供的一种浏览器的结构示意图,如图5所示,该浏览器包括:
一个或多个处理器410,图5中以一个处理器410为例;
存储器420;
所述设备还可以包括:输入装置430和输出装置440。
所述设备中的处理器410、存储器420、输入装置430和输出装置440可以通过总线或者其他方式连接,图5中以通过总线连接为例。
存储器420作为一种非暂态计算机可读存储介质,可用于存储软件程序、计算机可执行程序以及模块,如本发明实施例中的一种浏览器首次渲染时间计算方法对应的程序指令/模块(例如,附图4所示的标签获取模块310,性能数据获取模块320,资源加载时间确定模块330和浏览器首次渲染时间确定模块340)。处理器410通过运行存储在存储器420中的软件程序、指令以及模块,从而执行计算机设备的各种功能应用以及数据处理,即实现上述方法实施例的一种浏览器首次渲染时间计算方法,即:
获取头部元素容器标签内的所有链接外部样式文件标签和所有立即同步执行外部脚本标签;
获取所有链接外部样式文件标签和所有立即同步执行外部脚本标签的性能数据;
从所述性能数据中分别确定各个链接外部样式文件标签和各个立即同步执行外部脚本标签的加载时间,分别作为资源加载时间;
将所述资源加载时间中的最大值作为浏览器首次渲染时间。
存储器420可以包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需要的应用程序;存储数据区可存储根据计算机设备的使用所创建的数据等。此外,存储器420可以包括高速随机存取存储器,还可以包括非暂态性存储器,例如至少一个磁盘存储器件、闪存器件、或其他非暂态性固态存储器件。在一些实施例中,存储器420可选包括相对于处理器410远程设置的存储器,这些远程存储器可以通过网络连接至终端设备。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
输入装置430可用于接收输入的数字或字符信息,以及产生与计算机设备的用户设置以及功能控制有关的键信号输入。输出装置440可包括显示屏等显示设备。
本发明实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如本发明实施例提供的一种浏览器首次渲染时间计算方法:
获取头部元素容器标签内的所有链接外部样式文件标签和所有立即同步执行外部脚本标签;
获取所有链接外部样式文件标签和所有立即同步执行外部脚本标签的性能数据;
从所述性能数据中分别确定各个链接外部样式文件标签和各个立即同步执行外部脚本标签的加载时间,分别作为资源加载时间;
将所述资源加载时间中的最大值作为浏览器首次渲染时间。
可以采用一个或多个计算机可读的介质的任意组合。计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本文件中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括——但不限于——电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。
计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括——但不限于——无线、电线、光缆、RF等等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言或其组合来编写用于执行本发明操作的计算机程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如Java、Smalltalk、C++,还包括常规的过程式程序设计语言—诸如”C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络——包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
注意,上述仅为本发明的较佳实施例及所运用技术原理。本领域技术人员会理解,本发明不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本发明的保护范围。因此,虽然通过以上实施例对本发明进行了较为详细的说明,但是本发明不仅仅限于以上实施例,在不脱离本发明构思的情况下,还可以包括更多其他等效实施例,而本发明的范围由所附的权利要求范围决定。
Claims (10)
1.一种浏览器首次渲染时间计算方法,其特征在于,包括:
获取头部元素容器标签内的所有链接外部样式文件标签和所有立即同步执行外部脚本标签;
获取所有链接外部样式文件标签和所有立即同步执行外部脚本标签的性能数据;
从所述性能数据中分别确定各个链接外部样式文件标签和各个立即同步执行外部脚本标签的加载时间,分别作为资源加载时间;
将所述资源加载时间中的最大值作为浏览器首次渲染时间。
2.根据权利要求1所述的方法,其特征在于,所述获取头部元素容器标签内的所有链接外部样式文件标签和所有立即同步执行外部脚本标签,包括:
通过指定选择器组的元素列表接口,获取头部元素容器标签内的所有链接外部样式文件标签和所有脚本标签;
将头部元素容器标签内的延迟执行外部脚本标签、异步执行外部脚本标签和内联脚本标签进行过滤,得到所有外部样式文件标签和所有立即同步执行外部脚本标签。
3.根据权利要求1所述的方法,其特征在于,所述将所述资源加载时间中的最大值作为浏览器首次渲染时间,包括:
判断页面开始时间加上各个所述资源加载时间是否在过滤区间中;
若是,将在所述过滤区间中的所述资源加载时间中的最大值作为浏览器首次渲染时间;
否则,将所述过滤区间的时间极小值与页面开始时间的差值作为浏览器首次渲染时间。
4.根据权利要求3所述的方法,其特征在于,还包括:
判断文档对象模型DOM开始解析时间是否大于0;
若是,确定DOM开始解析时间为所述过滤区间的第一端点值;
否则,确定页面返回时间为所述过滤区间的第一端点值;
确定DOM就绪时间为所述过滤区间的第二端点值;所述第一端点值为所述过滤区间内的时间极小值,所述第二端点值为所述过滤区间内的时间极大值。
5.根据权利要求1所述的方法,其特征在于,所述获取头部元素容器标签内的所有链接外部样式文件标签和所有立即同步执行外部脚本标签,包括:
当浏览器不是谷歌浏览器和IE浏览器时,获取头部元素容器标签内的所有链接外部样式文件标签和所有立即同步执行外部脚本标签。
6.根据权利要求1所述的方法,其特征在于,所述获取所有链接外部样式文件标签和所有立即同步执行外部脚本标签的性能数据,包括:
通过指定名称资源性能数据接口,获取所有链接外部样式文件标签和所有立即同步执行外部脚本标签的性能数据。
7.一种浏览器首次渲染时间计算装置,其特征在于,包括:
标签获取模块,用于获取头部元素容器标签内的所有链接外部样式文件标签和所有立即同步执行外部脚本标签;
性能数据获取模块,用于获取所有链接外部样式文件标签和所有立即同步执行外部脚本标签的性能数据;
资源加载时间确定模块,用于从所述性能数据中分别确定各个链接外部样式文件标签和各个立即同步执行外部脚本标签的加载时间,分别作为资源加载时间;
浏览器首次渲染时间确定模块,用于将所述资源加载时间中的最大值作为浏览器首次渲染时间。
8.根据权利要求7所述的装置,其特征在于,所述标签获取模块,包括:
标签获取单元,用于将头部元素容器标签内的延迟执行外部脚本标签、异步执行外部脚本标签和内联脚本标签进行过滤,得到所有外部样式文件标签和所有立即同步执行外部脚本标签。
9.一种浏览器,其特征在于,包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序,
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如权利要求1-6任一项所述的一种浏览器首次渲染时间计算方法。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如权利要求1-6任一项所述的一种浏览器首次渲染时间计算方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911165491.4A CN111124530B (zh) | 2019-11-25 | 2019-11-25 | 浏览器首次渲染时间计算方法、装置、浏览器及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911165491.4A CN111124530B (zh) | 2019-11-25 | 2019-11-25 | 浏览器首次渲染时间计算方法、装置、浏览器及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111124530A true CN111124530A (zh) | 2020-05-08 |
CN111124530B CN111124530B (zh) | 2023-06-02 |
Family
ID=70496610
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911165491.4A Active CN111124530B (zh) | 2019-11-25 | 2019-11-25 | 浏览器首次渲染时间计算方法、装置、浏览器及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111124530B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112507261A (zh) * | 2020-12-18 | 2021-03-16 | 无线生活(杭州)信息科技有限公司 | 首屏时间计算方法及装置 |
CN112527414A (zh) * | 2020-12-23 | 2021-03-19 | 平安普惠企业管理有限公司 | 一种基于前端的数据处理方法、装置、设备及存储介质 |
Citations (24)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20090204669A1 (en) * | 2000-08-10 | 2009-08-13 | International Business Machines Corporation | Method and Apparatus for Measuring Web Site Performance |
CN103324521A (zh) * | 2013-06-20 | 2013-09-25 | 张家港保税区润桐电子技术研发有限公司 | 一种测量网页首屏时间的方法 |
CN103777939A (zh) * | 2013-03-18 | 2014-05-07 | 北京基调网络系统有限公司 | 一种测量网页首屏时间的方法 |
EP2728481A1 (en) * | 2012-11-04 | 2014-05-07 | Rightware Oy | Evaluation of page load performance of web browser |
US20140279043A1 (en) * | 2013-03-15 | 2014-09-18 | Xing Yi | Page personalization based on article display time |
US20140281858A1 (en) * | 2013-03-15 | 2014-09-18 | Xing Yi | Display time of a web page |
CN104899336A (zh) * | 2015-07-01 | 2015-09-09 | 北京博睿宏远科技发展有限公司 | 一种测量网页首屏完全渲染时间的方法 |
CN105373617A (zh) * | 2015-11-27 | 2016-03-02 | 中国联合网络通信集团有限公司 | 确定网页页面首屏时间的方法及装置 |
US20160335256A1 (en) * | 2014-03-07 | 2016-11-17 | Tencent Technology (Shenzhen) Company Limited | Display control method and apparatus for multimedia data |
CN106502902A (zh) * | 2016-10-25 | 2017-03-15 | 中国工商银行股份有限公司 | web页面运行效率监测方法及装置 |
US20170116349A1 (en) * | 2014-04-23 | 2017-04-27 | Akamai Technologies Inc. | Creation and delivery of pre-rendered web pages for accelerated browsing |
CN106656666A (zh) * | 2016-12-13 | 2017-05-10 | 中国联合网络通信集团有限公司 | 一种获取网页首屏时间的方法及装置 |
US9720889B1 (en) * | 2014-07-10 | 2017-08-01 | Google Inc. | Systems and methods for detecting auto-redirecting online content |
US20170237799A1 (en) * | 2016-02-16 | 2017-08-17 | Linkedin Corporation | Real user monitoring of single-page applications |
US20170237635A1 (en) * | 2016-02-16 | 2017-08-17 | Linkedin Corporation | Processing and visualization of single-page application performance metrics |
WO2017182522A1 (en) * | 2016-04-20 | 2017-10-26 | Infopunks Gmbh | Web tracking method and system |
CN108322359A (zh) * | 2018-01-08 | 2018-07-24 | 阿里巴巴集团控股有限公司 | 一种页面首屏时间的获取方法和装置 |
CN108671547A (zh) * | 2018-04-24 | 2018-10-19 | 腾讯科技(深圳)有限公司 | 一种获取应用的首屏时间的方法、装置及存储介质 |
CN108984384A (zh) * | 2017-06-01 | 2018-12-11 | 中国电信股份有限公司 | 网页首屏时延测量方法、装置和系统 |
CN109325195A (zh) * | 2018-07-23 | 2019-02-12 | 招银云创(深圳)信息技术有限公司 | 浏览器的渲染方法和系统、计算机设备、计算机存储介质 |
CN109344044A (zh) * | 2018-10-08 | 2019-02-15 | 杭州有赞科技有限公司 | 计算页面首屏渲染时间的方法和系统 |
CN109446095A (zh) * | 2018-11-07 | 2019-03-08 | 北京奇艺世纪科技有限公司 | 一种页面展示速度的测试方法、装置及电子设备 |
CN109740093A (zh) * | 2018-12-26 | 2019-05-10 | 无线生活(北京)信息技术有限公司 | 首屏时间的确定方法及装置 |
US20190171542A1 (en) * | 2017-12-01 | 2019-06-06 | Dynatrace Llc | Method And System For Real-User Capable Detecting Of The Visual Completeness Of Browser Rendering Process |
-
2019
- 2019-11-25 CN CN201911165491.4A patent/CN111124530B/zh active Active
Patent Citations (25)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20090204669A1 (en) * | 2000-08-10 | 2009-08-13 | International Business Machines Corporation | Method and Apparatus for Measuring Web Site Performance |
CN103810097A (zh) * | 2012-11-04 | 2014-05-21 | 正谓有限公司 | 网页浏览器的页面加载性能的评估 |
EP2728481A1 (en) * | 2012-11-04 | 2014-05-07 | Rightware Oy | Evaluation of page load performance of web browser |
US20140279043A1 (en) * | 2013-03-15 | 2014-09-18 | Xing Yi | Page personalization based on article display time |
US20140281858A1 (en) * | 2013-03-15 | 2014-09-18 | Xing Yi | Display time of a web page |
CN103777939A (zh) * | 2013-03-18 | 2014-05-07 | 北京基调网络系统有限公司 | 一种测量网页首屏时间的方法 |
CN103324521A (zh) * | 2013-06-20 | 2013-09-25 | 张家港保税区润桐电子技术研发有限公司 | 一种测量网页首屏时间的方法 |
US20160335256A1 (en) * | 2014-03-07 | 2016-11-17 | Tencent Technology (Shenzhen) Company Limited | Display control method and apparatus for multimedia data |
US20170116349A1 (en) * | 2014-04-23 | 2017-04-27 | Akamai Technologies Inc. | Creation and delivery of pre-rendered web pages for accelerated browsing |
US9720889B1 (en) * | 2014-07-10 | 2017-08-01 | Google Inc. | Systems and methods for detecting auto-redirecting online content |
CN104899336A (zh) * | 2015-07-01 | 2015-09-09 | 北京博睿宏远科技发展有限公司 | 一种测量网页首屏完全渲染时间的方法 |
CN105373617A (zh) * | 2015-11-27 | 2016-03-02 | 中国联合网络通信集团有限公司 | 确定网页页面首屏时间的方法及装置 |
US20170237799A1 (en) * | 2016-02-16 | 2017-08-17 | Linkedin Corporation | Real user monitoring of single-page applications |
US20170237635A1 (en) * | 2016-02-16 | 2017-08-17 | Linkedin Corporation | Processing and visualization of single-page application performance metrics |
WO2017182522A1 (en) * | 2016-04-20 | 2017-10-26 | Infopunks Gmbh | Web tracking method and system |
CN106502902A (zh) * | 2016-10-25 | 2017-03-15 | 中国工商银行股份有限公司 | web页面运行效率监测方法及装置 |
CN106656666A (zh) * | 2016-12-13 | 2017-05-10 | 中国联合网络通信集团有限公司 | 一种获取网页首屏时间的方法及装置 |
CN108984384A (zh) * | 2017-06-01 | 2018-12-11 | 中国电信股份有限公司 | 网页首屏时延测量方法、装置和系统 |
US20190171542A1 (en) * | 2017-12-01 | 2019-06-06 | Dynatrace Llc | Method And System For Real-User Capable Detecting Of The Visual Completeness Of Browser Rendering Process |
CN108322359A (zh) * | 2018-01-08 | 2018-07-24 | 阿里巴巴集团控股有限公司 | 一种页面首屏时间的获取方法和装置 |
CN108671547A (zh) * | 2018-04-24 | 2018-10-19 | 腾讯科技(深圳)有限公司 | 一种获取应用的首屏时间的方法、装置及存储介质 |
CN109325195A (zh) * | 2018-07-23 | 2019-02-12 | 招银云创(深圳)信息技术有限公司 | 浏览器的渲染方法和系统、计算机设备、计算机存储介质 |
CN109344044A (zh) * | 2018-10-08 | 2019-02-15 | 杭州有赞科技有限公司 | 计算页面首屏渲染时间的方法和系统 |
CN109446095A (zh) * | 2018-11-07 | 2019-03-08 | 北京奇艺世纪科技有限公司 | 一种页面展示速度的测试方法、装置及电子设备 |
CN109740093A (zh) * | 2018-12-26 | 2019-05-10 | 无线生活(北京)信息技术有限公司 | 首屏时间的确定方法及装置 |
Non-Patent Citations (1)
Title |
---|
吴清扬 等: "基于完全渲染的网页首屏性能测量设计", 《电子制作》 * |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112507261A (zh) * | 2020-12-18 | 2021-03-16 | 无线生活(杭州)信息科技有限公司 | 首屏时间计算方法及装置 |
CN112527414A (zh) * | 2020-12-23 | 2021-03-19 | 平安普惠企业管理有限公司 | 一种基于前端的数据处理方法、装置、设备及存储介质 |
CN112527414B (zh) * | 2020-12-23 | 2023-09-22 | 平安普惠企业管理有限公司 | 一种基于前端的数据处理方法、装置、设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN111124530B (zh) | 2023-06-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108415804B (zh) | 获取信息的方法、终端设备及计算机可读存储介质 | |
CN107844324B (zh) | 客户端页面跳转处理方法和装置 | |
EP3273362A1 (en) | Webpage access method, apparatus, device and non-volatile computer storage medium | |
CN112685671A (zh) | 页面显示方法、装置、设备及存储介质 | |
CN110765208B (zh) | 一种数据同步方法、装置、电子设备及存储介质 | |
CN111639275A (zh) | 路由信息处理方法、装置、电子设备及计算机存储介质 | |
CN114218890A (zh) | 页面渲染方法、装置、电子设备以及存储介质 | |
CN113590974B (zh) | 推荐页面配置方法、装置、电子设备和计算机可读介质 | |
CN111124530B (zh) | 浏览器首次渲染时间计算方法、装置、浏览器及存储介质 | |
CN110598135A (zh) | 网络请求处理方法、装置、计算机可读介质及电子设备 | |
KR20120025066A (ko) | 스크립트에 의한 동적 리소스 정보를 처리하는 웹 브라우징 시스템 및 방법 | |
CN111259294A (zh) | 页面加载请求响应方法、装置、设备和存储介质 | |
CN106599023A (zh) | 一种图片显示的优化方法及装置 | |
CN115329170A (zh) | 网页抓取方法、装置、设备以及存储介质 | |
CN104932910A (zh) | 应用程序接口扩展的方法及系统 | |
US10095791B2 (en) | Information search method and apparatus | |
CN110457900B (zh) | 一种网站监测方法、装置、设备及可读存储介质 | |
CN112558933A (zh) | 组件渲染方法、装置、可读介质及电子设备 | |
CN111338928A (zh) | 基于chrome浏览器测试的方法及装置 | |
CN113590986B (zh) | 页面链接配置方法、装置、电子设备和计算机可读介质 | |
CN110825603A (zh) | 页面首次加载时间确定方法、装置、电子设备及存储介质 | |
CN110858240A (zh) | 一种前端模块加载方法和装置 | |
CN113127788B (zh) | 页面处理方法、对象处理方法、装置及设备 | |
WO2015010574A1 (en) | Method, apparatus and terminal for webpage content browsing | |
CN114329149A (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 |