本申请涉及通信技术领域,特别是涉及一种页面脚本监控方法及装置。
背景技术:
随着互联网技术的飞速发展,使得互联网的使用越来越频繁,在使用互联网时,需要访问页面来完成各种活动,获取所需内容,通常会在页面中嵌入js(javascript,脚本)程序,通过执行js程序可实现各式各样的动态功能,页面脚本稳定性会直接影响用户的浏览效果,因此,需要对页面脚本执行过程的稳定性进行监控。
目前有两种方式可监控页面脚本执行过程的稳定性,第一种是采用window.onerror、trycatch函数捕获网页中的脚本错误,将脚本错误发生次数的绝对值发送至日志监控服务器;第二种是将第一种方式得到的脚本错误发生次数的绝对值除以页面pv(pageview,页面浏览量),得到对应的比值,将比值发送到日志监控服务器。
但是,第一种方式只能得到脚本错误发生次数的绝对值,需要人为根据经验设定发生次数的告警阈值,但是人为设定告警阈值的方式不客观,准确性不高;通过第二种方式来衡量页面脚本稳定性,如果某一次有大量的脚本错误上报,会触发误告警,而且同一时间段内上报脚本错误的用户和上报页面浏览量的用户不完全对等,例如,有100个客户端访问页面www.xxx.com,但是只有在其中一个客户端中捕获了80次脚本错误,因此,上报页面pv的用户有100个,上报脚本错误的用户只有一个,则计算得到的比值为0.8,误差较大,也会触发误告警。
技术实现要素:
鉴于上述问题,本申请实施例提供一种页面脚本监控方法,以通过监控页面执行过程中的脚本执行状态,根据包括脚本执行状态信息的页面状态消息,确定页面稳定性参数,解决现有技术中衡量页面脚本稳定性不准确的问题。
相应的,本申请实施例还提供了一种页面脚本监控装置,用以保证上述方法的实现及应用。
为了解决上述问题,本申请实施例公开了一种页面脚本监控方法,包括:
接收客户端发送的页面执行过程中的页面状态消息;所述页面状态消息包括脚本执行状态信息;
根据属于同一页面的页面状态消息,确定页面稳定性参数。
本申请实施例还公开了一种页面脚本监控方法,包括:
确定页面执行过程中的脚本执行状态;
向服务器发送包括脚本执行状态信息的页面状态消息,以供所述服务器根据属于同一页面的页面状态消息,确定页面稳定性参数。
相应的,本申请实施例还公开了一种页面脚本监控装置,包括:
接收模块,用于接收客户端发送的页面执行过程中的页面状态消息;所述页面状态消息包括脚本执行状态信息;
参数确定模块,用于根据属于同一页面的页面状态消息,确定页面稳定性参数。
本申请实施例还公开了一种页面脚本监控装置,包括:
脚本执行状态监控模块,用于确定页面执行过程中的脚本执行状态;
发送模块,用于向服务器发送包括脚本执行状态信息的页面状态消息,以供所述服务器根据属于同一页面的页面状态消息,确定页面稳定性参数。
相应的,本申请实施例还公开了一种装置,包括:
一个或多个处理器;和
其上存储有指令的一个或多个机器可读介质,当由所述一个或多个处理器执行时,使得所述装置执行一种页面脚本监控方法。
相应的,本申请实施例还公开了一个或多个机器可读介质,其上存储有指令,当由一个或多个处理器执行时,使得装置执行一种页面脚本监控方法。
本申请实施例包括以下优点:
本申请实施例通过接收客户端发送的页面执行过程中的页面状态消息,该页面状态消息包括脚本执行状态信息,根据属于同一页面的页面状态消息,确定页面稳定性参数。在页面执行过程中,接收到的页面状态消息中包括脚本执行状态信息,无需考虑页面中脚本错误的具体发生次数,只要有脚本错误发生时,就记录一个脚本错误状态信息,当没有脚本错误发生时,就记录一个脚本正常状态信息,因此,上报的页面状态消息和上报脚本执行状态信息的用户对等,且根据脚本执行状态信息确定页面脚本稳定性参数,使得衡量页面脚本稳定性的准确度更高、更客观,可降低误告警的机率。
附图说明
图1是本申请实施例的一种页面脚本监控方法的处理架构示意图;
图2是本申请实施例的另一种页面脚本监控方法的处理架构示意图;
图3是本申请实施例的一种页面脚本监控方法的交互图;
图4是本申请实施例的一种页面脚本监控方法实施例的流程图;
图5是本申请实施例的一种页面脚本监控方法实施例的具体流程图;
图6是本申请实施例的一种页面状态消息的发送示意图;
图7是本申请实施例的另一种页面脚本监控方法实施例的流程图;
图8是本申请实施例的一种页面脚本监控装置实施例的结构图;
图9是本申请实施例的另一种页面脚本监控装置实施例的结构图;
图10是本申请实施例提供的一种服务器的结构示意图。
具体实施方式
为使本申请的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本申请作进一步详细的说明。
本申请的技术方案主要应用于互联网场景中,以实现对页面脚本稳定性的监控。本申请实施例中的客户端也即是浏览器,例如电脑中的浏览器或手机中的浏览器,当然也可以是其他包括js脚本的页面的应用,本申请实施例不对其加以限制。
参照图1,示出了本申请实施例的一种页面脚本监控方法的处理架构示意图。
例如,针对同一个页面www.xxxxx.com,该页面www.xxxxx.com对应的应用服务器比如应用服务器b,因此,用户在浏览器中需要访问页面www.xxxxx.com时,首先需要向应用服务器b发送一个页面请求,应用服务器b根据接收到的页面请求返回对应的页面信息,客户端接收应用服务器b返回的页面信息,对页面信息进行渲染,显示在客户端的网页中。
在一定时长内,共有n个用户分别在各自的客户端访问同一个页面,对应的n个客户端分别向应用服务器发送页面请求,n个客户端分别执行步骤s1:向应用服务器发送页面请求。
应用服务器根据接收到的n个页面请求,向对应的客户端返回页面信息,n个客户端分别执行步骤s2:接收应用服务器返回的页面信息。客户端在加载该页面信息和运行该页面信息的过程中,可能会由于编码错误、语法错误等各种原因导致脚本错误,在客户端中可以采用window.onerror等函数捕获页面执行过程中的脚本错误,当在客户端的页面中捕获到脚本错误时,向日志监控服务器发送页面执行过程中的页面状态消息,该页面状态消息包括脚本错误状态信息;当在客户端的页面中未捕获到脚本错误时,向日志监控服务器发送页面执行过程中的页面状态消息,该页面状态消息包括脚本正常状态信息。日志监控服务器执行步骤s3:接收客户端发送的页面执行过程中的页面状态消息。
日志监控服务器根据接收到的页面状态消息中的脚本执行状态信息,确定页面稳定性参数。
参照图2,示出了本申请实施例的另一种页面脚本监控方法的处理架构示意图。
当在客户端的页面中捕获到脚本错误时,也可向应用服务器发送页面执行过程中的页面状态消息,该页面状态消息包括脚本错误状态信息;当在客户端的页面中未捕获到脚本错误时,向应用服务器发送页面执行过程中的页面状态消息,该页面状态消息包括脚本正常状态信息。应用服务器执行步骤s3:接收客户端发送的页面执行过程中的页面状态消息。
应用服务器根据接收到的页面状态消息中的脚本执行状态信息,确定页面稳定性参数。
如图1和图2的描述,本申请实施例中,对于页面的提供方和页面状态消息的接收方,两者可以分别布设在不同的服务器中,也可以布设在一个服务器中,本申请实施例不对其加以限制。比如图1中应用服务器向可客户端提供页面信息,而日志监控服务器用于执行接收页面状态消息、确定页面稳定性参数的过程;而图2中应用服务器既向可客户端提供页面信息,而日也执行接收页面状态消息、确定页面稳定性参数的过程。
参照图3,示出了本申请实施例的一种页面脚本监控方法的交互图。
针对其中一个客户端,详细说明页面脚本监控方法的交互过程,该交互过程可以如图1由客户端、应用服务器和日志监控服务器配合完成的。
用户在客户端中访问页面时,首先执行步骤a1:向应用服务器发送页面请求。应用服务器在接收到客户端的页面请求后,执行步骤a2:向对应的客户端返回页面信息。客户端在接收到应用服务器返回的页面信息后,加载和运行该页面信息,执行步骤a3:确定页面执行过程中的脚本执行状态。采用window.onerror捕获页面执行过程中的脚本错误,在执行步骤a3之后,执行步骤a4:向日志监控服务器发送包括脚本执行状态信息的页面状态消息。接着执行步骤a5:接收客户端发送的页面执行过程中的页面状态消息。日志监控服务器在接收到页面状态消息之后,执行步骤a6:根据属于同一页面的页面状态消息,确定页面稳定性参数。
当然,上述交互过程也可以如图2由客户端、应用服务器配合完成的,那么上述步骤a4、a5、a6的服务器则可以为图2的应用服务器。
在本申请实施例中,通过监控在页面执行过程中的脚本执行状态,将包括脚本执行状态信息的页面状态消息上报至服务器,服务器统计上报的页面状态消息,无需考虑页面中脚本错误的具体发生次数,只要有脚本错误发生时,就记录一个脚本错误状态信息,当没有脚本错误发生时,就记录一个脚本正常状态信息,因此,上报的页面状态消息和上报脚本执行状态信息的用户对等,且根据脚本执行状态信息确定页面脚本稳定性参数,使得衡量页面脚本稳定性的准确度更高、更客观,可降低误告警的机率。
实施例一
本申请实施例从服务器侧进行描述。该服务器比如图1中的日志监控服务器或者图2中的应用服务器。
参照图4,示出了本申请实施例的一种页面脚本监控方法实施例的流程图,具体可以包括如下步骤:
步骤401,接收客户端发送的页面执行过程中的页面状态消息;所述页面状态消息包括脚本执行状态信息。
在本申请实施例中,从应用服务器中获取到的页面信息,在客户端执行过程中,采用window.onerror函数捕获页面执行过程中的脚本错误,当在客户端的页面中捕获到脚本错误时,向图1中的日志监控服务器或者图2中的应用服务器发送页面执行过程中的页面状态消息,该页面状态消息包括脚本错误状态信息;当在客户端的页面中未捕获到脚本错误时,向图1中的日志监控服务器或者图2中的应用服务器发送页面执行过程中的页面状态消息,该页面状态消息包括脚本正常状态信息。图1中的日志监控服务器或者图2中的应用服务器接收客户端发送的页面状态消息。
其中,页面执行过程包括页面加载过程和/或页面运行过程;脚本错误状态信息和脚本正常状态信息可是分别看作一个标识信息,通过检测页面状态消息中的标识信息,确定接收到的页面状态消息是包括脚本错误状态信息,还是包括脚本正常状态信息。
客户端可基于http(hypertexttransferprotocol,超文本传输协议)协议向图1中的日志监控服务器或者图2中的应用服务器发送页面状态消息,该页面状态消息包括脚本执行状态信息,且脚本执行状态信息包括:脚本错误状态信息或脚本正常状态信息。
步骤402,根据属于同一页面的页面状态消息,确定页面稳定性参数。
在本申请实施例中,图1中的日志监控服务器或者图2中的应用服务器统计在一定时长内属于同一页面的页面状态消息,根据属于同一页面的页面状态消息,计算页面稳定性参数。
具体的,该检测页面状态消息中包括的脚本执行状态信息,根据脚本执行状态信息,确定页面稳定性参数,将页面稳定性参数作为衡量页面脚本稳定性的指标。
针对同一页面,包含脚本错误状态信息的消息数量和包含脚本正常状态信息的消息数量的总数,也就等于属于同一页面的页面状态消息的总数量。
例如,针对同一页面www.xxxxx.com,图1中的日志监控服务器或者图2中的应用服务器接收到100个客户端发送的页面状态消息,且每个客户端发送的页面状态消息均为1个,则图1中的日志监控服务器或者图2中的应用服务器接收到的页面状态消息为100个,统计100个页面状态消息中的脚本错误状态信息的个数为1个,100个页面状态消息中的脚本正常状态信息的个数为99个;根据1个脚本错误状态信息和99个脚本正常状态信息,确定页面稳定性参数,将页面稳定性参数作为衡量页面稳定性的指标。
本申请实施例通过接收客户端发送的页面执行过程中的页面状态消息,该页面状态消息包括脚本执行状态信息,根据属于同一页面的页面状态消息,确定页面稳定性参数。在页面执行过程中,接收到的页面状态消息中包括脚本执行状态信息,无需考虑页面中脚本错误的具体发生次数,只要有脚本错误发生时,就记录一个脚本错误状态信息,当没有脚本错误发生时,就记录一个脚本正常状态信息,因此,上报的页面状态消息和上报脚本执行状态信息的用户对等,且根据脚本执行状态信息确定页面脚本稳定性参数,使得衡量页面脚本稳定性的准确度更高、更客观,可降低误告警的机率。
实施例二
本申请实施例从服务器侧进行描述。
参照图5,示出了本申请实施例的一种页面脚本监控方法实施例的具体流程图,具体可以包括如下步骤:
步骤501,接收客户端在页面加载完成时发送的针对页面加载过程中的页面状态消息。
在本申请实施例中,客户端向对应的应用服务器发送页面请求,应用服务器根据接收到页面请求返回对应的页面信息,客户端在接收到页面信息后,在网页中加载该页面信息,在页面加载过程中,可采用window.onerror函数捕获页面加载过程中的脚本错误。
参照图6,示出了本申请实施例的一种页面状态消息的发送示意图。
当页面加载完成时,即在window.onload时机点,将针对页面加载过程中的页面状态消息发送至图1中的日志监控服务器或者图2中的应用服务器,图1中的日志监控服务器或者图2中的应用服务器接收客户端发送的针对页面加载过程中的页面状态消息;该页面状态消息中包括脚本执行状态信息,该脚本执行状态信息包括:脚本错误状态信息或脚本正常状态信息。
具体的,接收客户端通过窗口加载完成事件发送的所述页面状态消息。
在实际应用中,window.onload是一个事件,当页面中的有元素都加载完成时,就会触发window.onload事件。
在触发window.onload事件时,即窗口加载完成事件时,客户端将针对页面加载过程中的页面状态消息发送至图1中的日志监控服务器或者图2中的应用服务器,图1中的日志监控服务器或者图2中的应用服务器接收客户端通过窗口加载完成事件发送的针对页面加载过程中的页面状态消息;其中,该页面状态消息包括脚本执行状态信息。
需要说明的是,无论在页面加载过程中采用window.onerror捕获的脚本错误的具体个数是一个还是多个,在页面加载完成时,触发window.onload事件,向图1中的日志监控服务器或者图2中的应用服务器发送的页面状态消息中包括的脚本错误状态信息的数量可以为一个;当然,也可以在页面状态消息中包括脚本错误的具体个数,但在后续统计页面状态消息中的脚本错误状态信息时,记录一个脚本错误状态信息。
步骤502,接收客户端在页面退出时发送的针对页面运行过程中的页面状态消息。
在本申请实施例中,在页面运行过程中,也可以采用window.onerror捕获页面运行过程中的脚本错误。
如图6所示,当页面退出时,即在window.beforeunload时机点,将针对页面运行过程中的页面状态消息发送至图1中的日志监控服务器或者图2中的应用服务器,图1中的日志监控服务器或者图2中的应用服务器接收客户端发送的针对页面运行过程中的页面状态消息;该页面状态消息中包括脚本执行状态信息,该脚本执行状态信息包括:脚本错误状态信息或脚本正常状态信息。
具体的,接收客户端通过窗口关闭事件发送的所述页面状态消息。
在实际应用中,window.beforeunload是一个事件,当在页面关闭或刷新时触发window.beforeunload事件,触发window.beforeunload事件时,会在页面中弹出一个有确定和取消的对话框,当选择确定时,离开该页面,即该页面停止运行,当选择取消时,继续保留在当前页面。
在触发window.beforeunload事件时,即窗口关闭事件时,客户端将针对页面运行过程中的页面状态消息发送至图1中的日志监控服务器或者图2中的应用服务器,图1中的日志监控服务器或者图2中的应用服务器接收客户端通过窗口关闭事件发送的针对页面运行过程中的页面状态消息;其中,该页面状态消息包括脚本执行状态信息。
需要说明的是,无论在页面运行过程中采用window.onerror捕获的脚本错误的具体个数是一个还是多个,在页面退出时,触发window.beforeunload事件,向图1中的日志监控服务器或者图2中的应用服务器发送的页面状态消息中包括的脚本错误状态信息的数量仅为一个;当然,也可以在页面状态消息中包括脚本错误的具体个数,但在后续统计页面状态消息中的脚本错误状态信息时,只记录一个脚本错误状态信息。
本申请实施例可以执行步骤501和步骤502,还可以只执行步骤501和步骤502中的任意一个。
当执行步骤501和步骤502时,图1中的日志监控服务器或者图2中的应用服务器接收到客户端发送的页面状态消息包括针对页面加载过程中的页面状态消息和针对页面运行过程中的页面状态消息;当只执行步骤501时,图1中的日志监控服务器或者图2中的应用服务器接收到针对页面加载过程中的页面状态消息;当只执行步骤502时,图1中的日志监控服务器或者图2中的应用服务器接收到针对页面运行过程中的页面状态消息。
步骤503,根据属于同一页面的页面状态消息,确定页面稳定性参数。
在本申请实施例中,图1中的日志监控服务器或者图2中的应用服务器统计在一定时长内属于同一页面的页面状态消息,根据属于同一页面的页面状态消息,计算页面稳定性参数。
具体的,图1中的日志监控服务器或者图2中的应用服务器接收到客户端发送的页面状态消息还包括页面标识,根据确定属于同一页面标识的页面状态消息,确定页面稳定性参数。
在实际应用中,图1中的日志监控服务器或者图2中的应用服务器会接收到客户端发送的各个页面的页面状态消息,在页面状态消息中携带有对应页面的页面标识,图1中的日志监控服务器或者图2中的应用服务器根据页面标识区分各个页面,统计属于同一页面标识的页面状态消息,确定该页面标识对应的页面的页面稳定性参数。
例如,在1分钟内,图1中的日志监控服务器或者图2中的应用服务器接收到的页面状态消息包括c1、c2、c3、c4、d1、d2、d3、e1和e2,页面状态消息c1、c2、c3和c4中的页面标识均为c,页面状态消息d1、d2和d3中的页面标识均为d,页面状态消息e1和e2中的页面标识为e;统计页面状态消息c1、c2、c3和c4中包括的脚本执行状态信息,确定页面标识c对应的页面的页面稳定性参数,统计页面状态消息d1、d2和d3中包括的脚本执行状态信息,确定页面标识d对应的页面的页面稳定性参数,统计页面状态消息e1和e2中包括的脚本执行状态信息,确定页面标识e对应的页面的页面稳定性参数。
在本申请的一种实施例中,对属于同一页面的页面状态消息,确定包含脚本错误状态信息的消息数量占页面状态消息数量的比例,获得所述页面稳定性参数。
在一定时长内,对属于同一页面的页面状态消息,统计页面状态消息中包括的脚本错误状态信息的消息数量,相应的,还需统计页面状态消息的数量。
计算包含脚本错误状态信息的消息数量占页面状态消息数量的比例,获得该页面的页面稳定性参数,对应的计算公式为:
m=failcount/(successcount+failcount)×100%;(1)
在公式(1)中,m表示页面稳定性参数,failcount表示包含脚本错误状态信息的消息数量,successcount表示包含脚本正常状态信息的消息数量,包含脚本错误状态信息的消息数量和包含脚本正常状态信息的消息数量的总数等于页面状态消息数量。
例如,在最近5分钟,共接收到页面f的页面状态消息100条,其中,包含脚本错误状态信息的消息数量为10条,则页面f的页面稳定性参数m为10%。
在本申请的另一种实施例中,对属于同一页面的页面状态消息,确定包含脚本错误状态信息的消息数量与包含脚本正常状态信息的消息数量的比值,获得所述页面稳定性参数。
在一定时长内,对属于同一页面的页面状态消息,统计页面状态消息中包括的脚本错误状态信息的消息数量,相应的,统计页面状态消息中包括的脚本正常状态信息的消息数量。
计算包含脚本错误状态信息的消息数量与包含脚本正常状态信息的消息数量的比值,获得该页面的页面稳定性参数,对应的计算公式为:
m=failcount/successcount;(2)
在公式(2)中,m表示页面稳定性参数,failcount表示包含脚本错误状态信息的消息数量,successcount表示包含脚本正常状态信息的消息数量。
当然,还可以在包含脚本错误状态信息的消息数量与包含脚本正常状态信息的消息数量的比值上乘以百分数,将公式(2)中的页面稳定性参数m转化为百分比展示。
例如,在最近3分钟,接收到页面g的页面状态消息50条,其中,包含脚本错误状态信息的消息数量为10条,包含脚本正常状态信息的消息数量为40条,则页面g的页面稳定性参数m为0.25。
步骤504,当所述页面稳定性参数大于设定阈值时,生成告警信息。
在本申请实施例中,可以设置一个设定阈值,当计算得到的页面稳定性参数大于设定阈值时,生成告警信息。
可以将告警信息发送至指定客户端或页面对应的应用服务器中,方便对该页面的脚本错误进行分析和处理。
当然,由于公式(1)和公式(2)中计算得到的页面稳定性参数越大时,页面越不稳定,因此,当页面稳定性参数大于设定阈值时,生成告警信息;若将公式(1)转化为包含脚本正常状态信息的消息数量占页面状态消息数量的比例,获得该页面的页面稳定性参数,当页面稳定性参数小于设定阈值时,才生成告警信息。
本申请实施例通过接收客户端在页面加载完成时发送的针对页面加载过程中的页面状态消息,和/或接收客户端在页面退出时发送的针对页面运行过程中的页面状态消息,根据属于同一页面的页面状态消息,确定页面稳定性参数,当页面稳定性参数大于设定阈值时,生成告警信息。在页面执行过程中,接收到的页面状态消息中包括脚本错误状态信息或脚本正常状态信息,无需考虑页面中脚本错误的具体发生次数,只要有脚本错误发生时,就记录一个脚本错误状态信息,当没有脚本错误发生时,就记录一个脚本正常状态信息,因此,上报的页面状态消息和上报脚本执行状态信息的用户对等,且根据包含脚本错误状态信息的消息数量和包含脚本正常状态信息的消息数量,确定页面稳定性参数,使得衡量页面脚本稳定性的准确度更高、更客观,可降低误告警的机率;同时设置一个设定阈值,当页面稳定性参数大于设定阈值时,生成告警信息,方便及时对脚本错误进行分析和处理。
实施例三
本申请实施例从客户端侧进行描述。
参照图7,示出了本申请实施例的另一种页面脚本监控方法实施例的流程图,具体可以包括如下步骤:
步骤701,确定页面执行过程中的脚本执行状态。
在本申请实施例中,当用户需要在客户端访问某一页面时,客户端会向对应的应用服务器发送页面请求,应用服务器根据接收到页面请求返回对应的页面信息,客户端在接收到页面信息后,在客户端的网页中加载、运行该页面;通过客户端中的window.onerror函数捕获页面执行过程中的脚本错误,在页面执行过程中,只要捕获到一个脚本错误时,就可以确定发生脚本错误,当未捕获到脚本错误时,则确定未发生脚本错误,根据window.onerror函数是否捕获到脚本错误,确定页面执行过程中的脚本执行状态。
在本申请一种优选的实施例中,确定页面加载过程中的脚本执行状态;和/或,确定页面运行过程中的脚本执行状态。
可以只在页面加载过程中监控脚本执行状态,也可以只在页面运行过程中监控脚本执行状态,还可以在页面加载过程和页面运行过程中均监控脚本执行状态。
步骤702,向服务器发送包括脚本执行状态信息的页面状态消息,以供所述服务器根据属于同一页面的页面状态消息,确定页面稳定性参数。
在本申请实施例中,客户端向服务器发送包括脚本执行状态信息的页面状态消息,服务器接收客户端发送的页面状态消息,服务器根据属于同一页面的页面状态消息,确定页面稳定性参数。
其中,该服务器可以是图1中的日志监控服务器或者图2中的应用服务器。具体的,是检测页面状态消息中包括的脚本执行状态信息,该脚本执行状态信息包括:脚本错误状态信息或脚本正常状态信息,根据脚本错误状态信息和脚本正常状态信息,确定页面稳定性参数。
在本申请一种优选的实施例中,在页面加载完成时,向服务器发送针对页面加载过程中的页面状态消息;和/或,在页面退出时,向服务器发送针对页面运行过程中的页面状态消息。
当在页面加载过程中监控脚本执行状态,在页面加载完成时,即触发window.onload事件时,向服务器发送针对页面加载过程中的页面状态消息,服务器根据页面加载过程中的页面状态消息,计算页面稳定性参数。
当在页面运行过程中监控脚本执行状态,在页面退出时,即触发window.beforeunload事件时,向服务器发送针对页面运行过程中的页面状态消息,服务器根据页面运行过程中的页面状态消息,计算页面稳定性参数。
当在页面加载过程和页面运行过程中均监控脚本执行状态,在页面加载完成时,向服务器发送针对页面加载过程中的页面状态消息,在页面退出时,向服务器发送针对页面运行过程中的页面状态消息,服务器根据页面加载过程中的页面状态消息和页面运行过程中的页面状态消息,计算页面稳定性参数。
本申请实施例通过确定页面执行过程中的脚本执行状态,向服务器发送包括脚本执行状态信息的页面状态消息,以供所述服务器根据属于同一页面的页面状态消息,确定页面稳定性参数。在页面执行过程中,发送的页面状态消息中包括脚本错误状态信息或脚本正常状态信息,无需考虑页面中脚本错误的具体发生次数,只要有脚本错误发生时,就记录一个脚本错误状态信息,当没有脚本错误发生时,就记录一个脚本正常状态信息,因此,上报的页面状态消息和上报脚本执行状态信息的用户对等,且根据包含脚本错误状态信息的消息数量和包含脚本正常状态信息的消息数量,确定页面脚本稳定性参数,使得衡量页面脚本稳定性的准确度更高、更客观,可降低误告警的机率。
实施例四
参照图8,示出了本申请实施例的一种页面脚本监控装置实施例的结构图,主要应用于服务器800,该服务器800可以是图1中的日志监控服务器或者图2中的应用服务器,具体可以包括如下模块:
接收模块801,用于接收客户端发送的页面执行过程中的页面状态消息;所述页面状态消息包括脚本执行状态信息。
参数确定模块802,用于根据属于同一页面的页面状态消息,确定页面稳定性参数。
可选的,所述脚本执行状态信息包括:脚本错误状态信息或脚本正常状态信息。
可选的,所述接收模块801,包括:
第一接收子模块,用于接收客户端在页面加载完成时发送的针对页面加载过程中的页面状态消息;
和/或,第二接收子模块,用于接收客户端在页面退出时发送的针对页面运行过程中的页面状态消息。
可选的,所述参数确定模块802,包括:
第一参数确定子模块,用于对属于同一页面的页面状态消息,确定包含脚本错误状态信息的消息数量占页面状态消息数量的比例,获得所述页面稳定性参数。
可选的,所述参数确定模块802,包括:
第二参数确定子模块,用于对属于同一页面的页面状态消息,确定包含脚本错误状态信息的消息数量与包含脚本正常状态信息的消息数量的比值,获得所述页面稳定性参数。
可选的,所述第一接收子模块,包括:
第一接收单元,用于接收客户端通过窗口加载完成事件发送的所述页面状态消息;
所述第二接收子模块,包括:
第二接收单元,用于接收客户端通过窗口关闭事件发送的所述页面状态消息。
可选的,所述页面状态消息还包括页面标识,所述参数确定模块802,包括:
页面稳定性参数确定子模块,用于根据确定属于同一页面标识的页面状态消息,确定页面稳定性参数。
可选的,所述装置还包括:
生成模块,用于当所述页面稳定性参数大于设定阈值时,生成告警信息。
本申请实施例通过接收客户端发送的页面执行过程中的页面状态消息,该页面状态消息包括脚本执行状态信息,根据属于同一页面的页面状态消息,确定页面稳定性参数。在页面执行过程中,接收到的页面状态消息中包括脚本执行状态信息,无需考虑页面中脚本错误的具体发生次数,只要有脚本错误发生时,就记录一个脚本错误状态信息,当没有脚本错误发生时,就记录一个脚本正常状态信息,因此,上报的页面状态消息和上报脚本执行状态信息的用户对等,且根据脚本执行状态信息确定页面脚本稳定性参数,使得衡量页面脚本稳定性的准确度更高、更客观,可降低误告警的机率。
实施例五
参照图9,示出了本申请实施例的另一种页面脚本监控装置实施例的结构图,主要应用于客户端900,具体可以包括如下模块:
脚本执行状态监控模块901,用于确定页面执行过程中的脚本执行状态。
发送模块902,用于向服务器发送包括脚本执行状态信息的页面状态消息,以供所述服务器根据属于同一页面的页面状态消息,确定页面稳定性参数。
可选的,所述脚本执行状态监控模块901,包括:
第一监控子模块,用于确定页面加载过程中的脚本执行状态;
和/或,第二监控子模块,用于确定页面运行过程中的脚本执行状态。
可选的,所述发送模块902,包括:
第一发送子模块,用于在页面加载完成时,向服务器发送针对页面加载过程中的页面状态消息;
和/或,第二发送子模块,用于在页面退出时,向服务器发送针对页面运行过程中的页面状态消息。
本申请实施例通过确定页面执行过程中的脚本执行状态,向服务器发送包括脚本执行状态信息的页面状态消息,以供所述服务器根据属于同一页面的页面状态消息,确定页面稳定性参数。在页面执行过程中,发送的页面状态消息中包括脚本错误状态信息或脚本正常状态信息,无需考虑页面中脚本错误的具体发生次数,只要有脚本错误发生时,就记录一个脚本错误状态信息,当没有脚本错误发生时,就记录一个脚本正常状态信息,因此,上报的页面状态消息和上报脚本执行状态信息的用户对等,且根据包含脚本错误状态信息的消息数量和包含脚本正常状态信息的消息数量,确定页面脚本稳定性参数,使得衡量页面脚本稳定性的准确度更高、更客观,可降低误告警的机率。
对于装置实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
图10是本申请实施例提供的一种服务器的结构示意图。参见图10,服务器800可以用于实施上述实施例一和实施例二中提供的页面脚本监控方法。该服务器800可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上中央处理器(centralprocessingunits,cpu)822(例如,一个或一个以上处理器)和存储器832,一个或一个以上存储应用程序842或数据844的存储介质830(例如一个或一个以上海量存储设备)。其中,存储器832和存储介质830可以是短暂存储的或持久存储的。存储在存储介质830的程序可以包括一个或一个以上模块(图示没标出),每个模块可以包括对服务器中的一系列指令操作。更进一步地,中央处理器822可以设置为与存储介质830通信,在服务器800上执行存储介质830中的一系列指令操作。
服务器800还可以包括一个或一个以上电源826,一个或一个以上有线或无线网络接口850,一个或一个以上输入输出接口858,一个或一个以上键盘856,和/或,一个或一个以上操作系统841,例如windowsservertm,macosxtm,unixtm,linuxtm,freebsdtm等等。其中,中央处理器822可以在服务器800上执行以下操作的指令:
接收客户端发送的页面执行过程中的页面状态消息;所述页面状态消息包括脚本执行状态信息;
根据属于同一页面的页面状态消息,确定页面稳定性参数。
可选的,所述脚本执行状态信息包括:脚本错误状态信息或脚本正常状态信息。
可选的,接收客户端在页面加载完成时发送的针对页面加载过程中的页面状态消息;
和/或,接收客户端在页面退出时发送的针对页面运行过程中的页面状态消息。
可选的,对属于同一页面的页面状态消息,确定包含脚本错误状态信息的消息数量占页面状态消息数量的比例,获得所述页面稳定性参数。
可选的,对属于同一页面的页面状态消息,确定包含脚本错误状态信息的消息数量与包含脚本正常状态信息的消息数量的比值,获得所述页面稳定性参数。
可选的,接收客户端通过窗口加载完成事件发送的所述页面状态消息;接收客户端通过窗口关闭事件发送的所述页面状态消息。
可选的,所述页面状态消息还包括页面标识,根据确定属于同一页面标识的页面状态消息,确定页面稳定性参数。
可选的,当所述页面稳定性参数大于设定阈值时,生成告警信息。
本申请实施例还提供一种客户端900,客户端900可以用于实施上述实施例三中提供的页面脚本监控方法。
该客户端900的具体结构可参照图10所示的服务器的结构示意图,两者的不同之处在于,客户端900的中央处理器和服务器800的中央处理器执行的操作指令不同,其执行客户端侧的方法。
本申请提供一种装置,其上存储有指令的一个或多个机器可读介质,当由所述一个或多个处理器执行时,使得所述装置执行一种页面脚本监控方法。
本申请还提供一个或多个机器可读介质,其上存储有指令,当由一个或多个处理器执行时,使得装置执行一种页面脚本监控方法。
本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。
本领域内的技术人员应明白,本申请实施例的实施例可提供为方法、装置、或计算机程序产品。因此,本申请实施例可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。
本申请实施例是参照根据本申请实施例的方法、终端设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理终端设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理终端设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理终端设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理终端设备上,使得在计算机或其他可编程终端设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程终端设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本申请实施例的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本申请实施例范围的所有变更和修改。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者终端设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者终端设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者终端设备中还存在另外的相同要素。
以上对本申请所提供的一种页面脚本监控方法及装置,进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的一般技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。