CN106528383B - 一种抓取用户异步请求回调执行时间的方法 - Google Patents

一种抓取用户异步请求回调执行时间的方法 Download PDF

Info

Publication number
CN106528383B
CN106528383B CN201610846189.5A CN201610846189A CN106528383B CN 106528383 B CN106528383 B CN 106528383B CN 201610846189 A CN201610846189 A CN 201610846189A CN 106528383 B CN106528383 B CN 106528383B
Authority
CN
China
Prior art keywords
callback
timer
execution
asynchronous
time
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
Application number
CN201610846189.5A
Other languages
English (en)
Other versions
CN106528383A (zh
Inventor
刘鹏
王川林
刘东海
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Guangtong Youyun Technology Co.,Ltd.
HANGZHOU YOUYUN SOFTWARE Co.,Ltd.
Original Assignee
Beijing Guangtong Software Ltd By Share Ltd Xinda
Hangzhou Youyun Software Co ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Beijing Guangtong Software Ltd By Share Ltd Xinda, Hangzhou Youyun Software Co ltd filed Critical Beijing Guangtong Software Ltd By Share Ltd Xinda
Priority to CN201610846189.5A priority Critical patent/CN106528383B/zh
Publication of CN106528383A publication Critical patent/CN106528383A/zh
Application granted granted Critical
Publication of CN106528383B publication Critical patent/CN106528383B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/32Monitoring with visual or acoustical indication of the functioning of the machine
    • G06F11/324Display of status information
    • G06F11/328Computer systems status display
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3003Monitoring arrangements specially adapted to the computing system or computing system component being monitored
    • G06F11/302Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a software system

Abstract

本发明涉及互联网监控领域,尤其涉及一种抓取用户异步请求回调执行时间的方法,用于监控网页中异步请求(Ajax)的回调函数代码执行所花费的时间,便于分析异步请求的性能。该方法是根据单线程的原理,当有异步回调函数执行的时候,立即再加入一个为零的定时器,定时器里的回调会被放在队列中,并在js主线程中空闲的时候立即被推入到主线程中执行,使得该回调函数代码执行完就会立即执行定时器里面的代码;从回调执行开始‑回调执行‑定时器执行,这几个时间在同一条线上,通过定时器的执行来标识回调的结束,并计算所要的时间。

Description

一种抓取用户异步请求回调执行时间的方法
技术领域
本发明涉及互联网web性能监控领域,具体涉及一种抓取用户异步请求回调执行时间的方法。
背景技术
在本发明前,目前各大浏览器的升级都对性能的提升做了不断的优化,用户对体验的敏感度也越来越高,很多产品都开始注重用户的体验,出现了很多用户体验监控产品,像国外的newrelic、dynatrace,以及国内的uyun(优云)、oneapm等。作为一个前端开发者,重点关注点在Web性能上。Web的性能度量大致可分为两个部分,一部分是页面及外部资源的加载时间,另一部分则是用户与页面的交互过程中的展现时间。第一部分有很多相应的优化方案,比如cdn,css sprites;第二部分现在也有相关框架,如现在的React提出的virtual dom,就是减少在视图层面最终展现的时间。另外一方面,随着web应用的流行,单页应用也越来越多,全都是采用异步请求来更新页面,异步请求的性能也越来越需要得到重视,目前很多都是在请求这块去做监控和优化,而在抓取异步请求回调的执行时间业界并没有好的方案,虽然这个时间相对较短,但是在越来越高的用户体验上,还是有必要把这块的时间展现给用户,让用户做更进一步的分析;有鉴于此,特提出本发明。
发明内容
本发明的目的在于克服现有技术存在的不足,而提供一种抓取用户异步请求回调执行时间的方法,通过js单线程原理和改写元素浏览器对象来实现,用于监控网页中异步请求(Ajax)的回调函数代码执行所花费的时间,便于分析异步请求的性能。
本发明的目的是通过如下技术方案来完成的。这种抓取用户异步请求回调执行时间的方法,该方法是根据单线程的原理,当有异步回调函数执行的时候,立即再加入一个为零的定时器,定时器里的回调会被放在队列中,并在js主线程中空闲的时候立即被推入到主线程中执行,使得该回调函数代码执行完就会立即执行定时器里面的代码;从回调执行开始-回调执行-定时器执行,这几个时间在同一条线上,通过定时器的执行来标识回调的结束,并计算所要的时间。
更进一步的,该方法通过改写原生异步请求对象,用于全局监控所有的异步请求;并利用js是单线程的原理,通过打点的方式来计算时间差;具体包括如下步骤:
S1重新改写window.XMLH TTPRequest相关的对象和方法;
S2监控所有异步请求,在readyState状态为4时,标记一个回调函数开始时间start;
S3然后在currentState=4中添加一个setTimeout(func,0)定时器,即成功返回后添加一个setTimeout(func,0)定时器,这个func里面再添加一个回调函数结束时间end;
S4计算end和start之差,两者之差就是异步请求回调函数的执行时间。
本发明的有益效果为:本发明完整的输出一个异步请求的时间点:从发起请求,接受请求,执行请求的回调,对目前相对一些完善的监控体验添加了最后一道监控指标,让开发者可以清晰的了解到自己应用的性能瓶颈在哪。本发明的目的即是计算异步请求回调函数的执行时间,尤其在单页应用中,大部分都是采用ajax交互,能帮助管理者提升应用的性能,追求更好的体验。
附图说明
图1是本发明中异步回调从抓取到上报的过程示意图;
图2是本发明中javascript执行模型示意图。
图3是本发明中具体流程示意图。
具体实施方式
下面通过附图和具体实施方式对本发明作进一步阐述,实施例将帮助更好地理解本发明,但本发明并不仅仅局限于下述实施例。
如图所示,本发明主要是根据单线程的原理(同一个时刻只有一段执行代码),当有异步回调函数执行的时候,立即加入一个为零的定时器,这个定时器里的回调会被放在队列中,并在js主线程中空闲的时候立即被推入到主线程中执行,所以保证了这个回调函数代码执行完就会立即定时器里面的代码。从回调执行开始-回调执行-定时器执行(回调结束),这几个时间在同一条线上,通过定时器的执行来标识回调的结束,通过这样的方式计算所要的时间。本发明实现步骤具体如下:
S1新建一个空对象用来指向原生的异步请求对象,并重新改写window.XMLHTTPRequest相关的对象和方法;
S2监听异步请求回调,对不同的请求状态进行监听;
S3当返回状态为成功时,在readyState状态为4时,标记下开始执行时间比如标记一个变量a;
S4在状态为成功的时候立即添加一个定时器,这个定时器设为0s后执行,这个目的是尽快让这个定时器的回调立即执行(javascript主线程空闲时,会把异步队列中的回调推入到主线程去);
S5当异步请求回调中的代码执行完之后,这个时候也就是javascript主线程空闲时浏览器有个队列机制,会把这个队列里面的回调推入到主线程中去执行,也就是我们上一步的定时器回调;
S6当我们的定时器回调立即执行时,我们标记一个结束时间b,从上面的步骤中可以看到,从异步回调开始执行到这个定时器执行的时间段就是异步回调执行的整个时间,所以我们用结束时间b减去开始时间a,两者之差就是异步请求回调函数的执行时间。
本发明在实施例中,只要在web端添加应用,会生成一段部署代码,将部署代码添加到指定的页面head标签之内(这里需要对html有所了解的人去部署),正确部署之后,过几分钟之后,web端就会有相应的数据展现。
除上述实施例外,本发明还可以有其他实施方式。凡采用等同替换或等效变换形成的技术方案,均落在本发明要求的保护范围。

Claims (1)

1.一种抓取用户异步请求回调执行时间的方法,其特征在于:该方法是根据单线程的原理,当有异步回调函数执行的时候,立即再加入一个为零的定时器,定时器里的回调会被放在队列中,并在js主线程中空闲的时候立即被推入到主线程中执行,使得该回调函数代码执行完就会立即执行定时器里面的代码;从回调执行开始-回调执行-定时器执行,这几个时间在同一条线上,通过定时器的执行来标识回调的结束,并计算所要的时间;该方法通过改写原生异步请求对象,用于全局监控所有的异步请求;并利用js是单线程的原理,通过打点的方式来计算时间差;具体包括如下步骤:
S1重新改写window.XMLHTTPRequest相关的对象和方法;
S2监控所有异步请求,在readyState状态为4时,标记一个回调函数开始时间start;
S3 然后在currentState=4中添加一个setTimeout(func,0)定时器,这个func里面再添加一个回调函数结束时间end;
S4计算end和start之差,两者之差就是异步请求回调函数的执行时间。
CN201610846189.5A 2016-09-23 2016-09-23 一种抓取用户异步请求回调执行时间的方法 Active CN106528383B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201610846189.5A CN106528383B (zh) 2016-09-23 2016-09-23 一种抓取用户异步请求回调执行时间的方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201610846189.5A CN106528383B (zh) 2016-09-23 2016-09-23 一种抓取用户异步请求回调执行时间的方法

Publications (2)

Publication Number Publication Date
CN106528383A CN106528383A (zh) 2017-03-22
CN106528383B true CN106528383B (zh) 2020-05-05

Family

ID=58344037

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201610846189.5A Active CN106528383B (zh) 2016-09-23 2016-09-23 一种抓取用户异步请求回调执行时间的方法

Country Status (1)

Country Link
CN (1) CN106528383B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109961279A (zh) * 2019-03-18 2019-07-02 厦门市易联众易惠科技有限公司 一种基于多策略的his支付状态获取方法及设备

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101782746A (zh) * 2009-01-21 2010-07-21 方大集团股份有限公司 一种监控装置和监控方法

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6294145B2 (ja) * 2014-04-28 2018-03-14 日本電信電話株式会社 監視方法、監視装置および監視制御プログラム

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101782746A (zh) * 2009-01-21 2010-07-21 方大集团股份有限公司 一种监控装置和监控方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
一种改进WebGIS实时监控的通用框架;姚志胜;《计算机应用与软件》;20090831;第26卷(第8期);第141页第1节-第143页第5节 *

Also Published As

Publication number Publication date
CN106528383A (zh) 2017-03-22

Similar Documents

Publication Publication Date Title
US9906613B2 (en) Determining relevant content for keyword extraction
CN108595304B (zh) 网页监控方法及装置
CA3018196C (en) Visual regresssion testing tool
EP2847688B1 (en) A method and system for monitoring and tracking browsing activity on handheld devices
US7814410B2 (en) Initial server-side content rendering for client-script web pages
US9235640B2 (en) Logging browser data
CN108415804B (zh) 获取信息的方法、终端设备及计算机可读存储介质
US8756214B2 (en) Crawling browser-accessible applications
WO2011076505A2 (en) Improving performance of template based javascript widgets
WO2015175734A1 (en) Interactive viewer of intermediate representations of client side code
US10721152B2 (en) Automated analysis and recommendations for highly performant single page web applications
CN104778167A (zh) 一种网页加载进度控制方法、装置和终端
RU2014131311A (ru) Способ (варианты) генерации страницы результатов поиска, сервер, используемый в нем, и способ определения позиции веб-страницы в списке веб-страниц
Shroff et al. Critical rendering path optimizations to reduce the web page loading time
WO2017096967A1 (zh) 自适应显示网页的方法及装置
US10033656B2 (en) Critical rendering path optimization
CN106528383B (zh) 一种抓取用户异步请求回调执行时间的方法
WO2015003664A1 (zh) 一种下载处理方法、装置、服务器及客户端设备
CN110677447B (zh) 用户停留时长确定方法、装置、设备和存储介质
CN106919503B (zh) 应用程序的测试方法及装置
US10769352B2 (en) Providing dynamic web content without flicker
CN106055342B (zh) 一种dojango下使用第三方Form扩展组件的方法
CN113849758A (zh) 网页指标的生成方法、装置、电子设备及存储介质
CN105095217B (zh) 数据发送装置和方法
CN112328943A (zh) 一种基于html2canvas的节点截图方法

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
TA01 Transfer of patent application right

Effective date of registration: 20191220

Address after: 311305 no.030, building 3, No.6 heting street, Qingshanhu street, Lin'an District, Hangzhou City, Zhejiang Province

Applicant after: Hangzhou Youyun Software Co., Ltd.

Applicant after: Beijing Guangtong software Limited by Share Ltd XinDa

Address before: 311305, No. three, No. 6, Ting Ting Street, 030 Qingshan Lake Street, Hangzhou, Zhejiang, Ling'an

Applicant before: Hangzhou Youyun Software Co., Ltd.

TA01 Transfer of patent application right
GR01 Patent grant
GR01 Patent grant
CP01 Change in the name or title of a patent holder

Address after: 311305 No. 030, building 3, No. 6, heting street, Qingshanhu street, Lin'an District, Hangzhou City, Zhejiang Province

Patentee after: HANGZHOU YOUYUN SOFTWARE Co.,Ltd.

Patentee after: Beijing Guangtong Youyun Technology Co.,Ltd.

Address before: 311305 No. 030, building 3, No. 6, heting street, Qingshanhu street, Lin'an District, Hangzhou City, Zhejiang Province

Patentee before: HANGZHOU YOUYUN SOFTWARE Co.,Ltd.

Patentee before: Beijing Guangtong software Limited by Share Ltd. XinDa

CP01 Change in the name or title of a patent holder