CN101685451A - 监听浏览器中的事件的方法和事件监听装置及浏览器设备 - Google Patents
监听浏览器中的事件的方法和事件监听装置及浏览器设备 Download PDFInfo
- Publication number
- CN101685451A CN101685451A CN200810168112A CN200810168112A CN101685451A CN 101685451 A CN101685451 A CN 101685451A CN 200810168112 A CN200810168112 A CN 200810168112A CN 200810168112 A CN200810168112 A CN 200810168112A CN 101685451 A CN101685451 A CN 101685451A
- Authority
- CN
- China
- Prior art keywords
- incident
- browser
- event
- user
- module
- 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.)
- Pending
Links
Images
Landscapes
- Information Transfer Between Computers (AREA)
Abstract
本发明公开了一种监听浏览器中的事件的方法和事件监听装置及其浏览器设备,所述方法包括:从浏览器接收浏览器发布的各种事件;以及将接收到的事件发布给应用代理模块,所述应用代理模块用于实现与接收到的事件相关的功能。通过使用本发明,使得不需要任何外部动作,就可以获取浏览器的全部事件信息,并且能够根据用户的要求,方便快捷且准确地提供相关事件信息。
Description
技术领域
本发明通常涉及Web浏览器技术,更具体地,涉及一种用于监听浏览器中的事件的方法和事件监听装置及包括该事件监听装置的浏览器。
背景技术
Web 2.0技术将更多的客户端交互带入到基于浏览器的应用中。使用适当的客户端技术,诸如,AJAX(Asynchronous JavaScript andXML,异步JavaScript和XML)、JAVA应用小程序、Flash等,基于Web的界面提供了与普通独立的应用近似的交互性。很多传统应用提供基于Web的界面,并且在基于Web的界面的基础上出现了很多新的应用。基于Web的应用比以前更复杂。同时,Web界面中出现错误的可能性不断上升。开发者和支持人员需要找出当用户在其日常使用中发现一些问题时帮助终端用户发现问题从而解决问题的方法。
图1示出了某公司***管理软件的开发环境的示意图。如图1所示,使用者在菲律宾使用***管理软件,***管理软件的技术支持人员(和/或开发人员)在中国,***管理软件的架构师在美国,而***管理软件的流程改进人员在英国。
当使用者在菲律宾运行***管理软件并打开基于Web的界面进行***信息的录入、校对和/或打印时,可能发生浏览器错误,这些错误可能是由软件本身的程序缺陷引起的,也可能是由使用者的操作不当引起的。这时,技术支持人员需要使用者向其报告问题发生时出现的现象及使用者当时的每一步骤的操作以便再现问题。
架构师更关心是否应该为当前的***管理软件增加新的功能模块。例如,由于用户的屏幕小,从而在一屏上显示出相关***信息使得字体很小,使用者希望有局部放大工具。这需要使用者向架构师描述其日常操作习惯以及方便和不便之处,从而使架构师理解使用者需要的功能。
流程改进人员对***软件的整个处理流程进行改进,以便更加方便于使用者的使用。这需要使用者描述其日常的使用习惯,诸如,不在屏幕上打开***信息列表,而是用打印机打印出来,在纸件上核对信息。这需要使用者向流程改进人员描述其日常使用习惯。
由图1所示的例子可知,收集使用者在浏览器上的操作信息以及其日常动作信息是很重要的。
根据发明人自身的用户支持经验,发明人发现支持web应用用户的最重要因素是要找出用户的操作信息,即,操作跟踪信息。操作跟踪信息包括:
1.在页面中用户进行了什么按键/鼠标序列?
2.用户象他所说的那样进行了正确的操作?例如,用户是双击了按钮,还是点击了按钮两次?
3.如果存在计时问题,用户在进行每一操作之前等待了多长时间?
4.如果可能的话,所有环境变量的描述都是很重要的。
但是,让用户提供对其操作的描述和对其日常动作的描述从而找出问题所在是困难的,这主要是由于:
1.终端用户没有足够的技术背景,从而问题描述是模糊的;
2.某些错误难以被捕获。例如,用户在所有内容已被加载到浏览器中之后必须点击提交按钮,而用户没有这么做;
3.需要整个错误场景,但是终端用户难以准确地回忆起整个错误场景。例如,问题仅在用户第一次点击图像按钮,然后在某些文本框中写入字符串并且随后点击另一按钮时发生。
在描述和再现问题时出现的这些困难将严重影响支持/开发人员的支持时间和响应速度。
当前,现有技术中已经存在解决部分这种问题的解决方案。以下列出了这些解决方案中常见的四种:
1.使用日志库
日志库多为桌面应用程序使用。例如,某些桌面应用程序使用诸如Log4J或JDK记录器的日志库来记录执行路径中的所有关键状态以便帮助调试和再现程序缺陷。
使用日志库的桌面应用程序的一个例子是Qarchive提出的superkeyloggerTM 3.2(其详细介绍在本申请的申请日之前可以在因特网网址http://superkeylogger.shakeel-hasan-khan.qarchive.org找到)。使用者首先需要远程或本地安装superkeylogger,然后就可以使用superkeylogger来在加密文件中记录用户在计算机上的全部动作,诸如访问的web站点、使用ICQ、MSN和电子邮件等的聊天、按下的每个按键以及以设置的间隔获取整个微软桌面的快照。
但是基于Web的应用运行在受控的环境中,例如,在浏览器容器中,从而不能容易地实现记录。这是因为在浏览器容器中为了保护其中的某些应用程序不被篡改、删除等,会对例如日志库中某些程序的运行进行限制,从而浏览器中的某些事件不能被日志库记录。
2.屏幕记录
这是实现用户操作跟踪的最直接方式。但是,大多数用户不具有专业的屏幕记录工具,并且在未经专业培训的情况下,用户根本不可能知道如何使用这些屏幕记录工具。
3.使用复杂的专业容器来截取Web应用中的事件
一些专业测试工具提供这种功能来截取鼠标/键盘事件和将这些事件记录在单独的文件中。但是应用程序的日常用户未经专业培训不可能使用这种工具并且也不可能说服用户使用这种专业测试工具来处理日常常规任务。
4.截取Web流
与上述3中的情况相同,用户不可能在日常工作中使用这种工具。这种工具是在浏览器与服务器之间的代理上实现的,在没有经过代理的web流的情况下,这种工具不能揭示浏览器内部发生的客户端脚本(诸如,javascript)的错误。
此外,包括上述软件的现有技术中的监听工具软件都是后台运行的工具软件而不是前台运行的工具软件,上述“后台运行的工具软件”是指在计算机内部运行的记录程序,而上述“前台运行的工具软件”是指在浏览器内运行的记录程序,从而现有技术中的监听工具软件不能完全监听在浏览器中发生的所有事件。
图2是示出在现有技术中浏览器服务器架构的示意图。以下以图2所示的浏览器服务器架构为例,说明现有技术的记录工具的不足之处。
例如,用户通过浏览器向服务器请求北京地区的天气,而服务器的响应策略是将全国各城市的天气数据下载给浏览器。用户的输入和浏览器的请求及随后来自服务器的响应可以被后台运行的记录程序所捕获。随后,浏览器可以应用户的请求处理和显示其它城市的天气数据,但是浏览器中的这些处理和显示事件并不能被后台运行的记录程序所捕获和记录。因此,现有技术中的后台运行的监听工具对于监听浏览器中的各种事件是不够的。
因此,需要一种能够监听浏览器中的各种事件的机制。
发明内容
考虑到现有技术中存在的上述问题,本发明提供了一种前台运行的监听工具,更具体地,通过在浏览器中引入事件监听模块以使得浏览器中发生的各种事件都必须经过事件监听模块到达相应的功能模块,事件监听模块能够获得和分发浏览器中的所有事件,从而使得记录浏览器中的所有事件成为可能。更优选地,本发明还提供了事件处理模块,其响应于第一预定条件注册自己,然后事件监听模块接收响应于该注册而将各种事件的事件通知发送给事件处理模块,然后事件处理模块基于预定策略选择事件通知以及将所选的事件通知存储和/或报告给用户。事件处理模块响应于第二预定条件立即注销自己。优选地,第一预定条件优选的是用户的启用指示;而第二预定条件优选的是用户的禁用指示。
为了实现上述目的,提供了一种监听浏览器中的事件的方法,包括:从浏览器接收浏览器发布的各种事件;以及将接收到的事件发布给应用代理模块,所述应用代理模块用于实现与接收到的事件相关的功能。
为了实现上述目的,提供了一种监听浏览器中的事件的事件监听装置,包括:接收单元,用于从浏览器接收浏览器发布的各种事件,以及发布单元,用于将接收到的事件发布给应用代理模块,所述应用代理模块用于实现与接收到的事件相关的功能。
优选地,在收到用户的启用指令之后,注册事件处理模块。
优选地,事件处理模块基于预定策略选择和记录来自事件监听模块的事件报告。
为了实现上述目的,还提供了一种包括上述设备的浏览器。
因此,本发明无需用户有任何专业知识,也无需任何外部动作,诸如本地或远程安装程序,就可以监听浏览器中发生的所有事件,从而本发明更方便易用以及提高了错误定位的精确性和有效性。更进一步地,本发明可以根据需要选择并记录事件并将所选事件报告给用户/后台服务器。这项功能可以由用户选择启动,并且可以作为一种增值服务可选择地提供给用户,从而保护了用户的隐私并给用户提供了自由度。
附图说明
从下面结合附图的详细描述中,本发明将会更易于理解,其中,相同的附图标记表示相同的结构元素,并且,附图中:
图1示出了某公司***管理软件的开发环境的示意图;
图2是示出在现有技术中浏览器服务器架构的示意图;
图3是示出了根据本发明的事件监听模块中执行的处理的示意性流程图;
图4示出了在根据本发明的事件处理模块中执行的处理的示意性流程图;
图5是示出了根据本发明的引入了事件监听模块的浏览器架构的示意框图;
图6是示出了根据本发明的事件处理模块的配置的示意性框图;
图7是示出了根据本发明的引入了事件监听模块的可替换浏览器架构的示意框图;
图8是示出了根据本发明的具有启用事件处理模块的按钮的浏览器的GUI界面的示意图;和
图9是示出了根据本发明的在启用了事件处理模块后的浏览器的GUI界面的示意图。
具体实施方式
现在将以具体的、示例性实施例描述本发明。应该理解,本发明不限于所披露的示例性实施例。还应该理解,目前所披露的在浏览器中监听事件的方法和装置的每一个特征,并非都是实现所附权利要求任一具体权项要求保护的发明必不可少的。描述设备的多个元件和特征是为了使本发明完全能够得以实现。还应该理解的是,在本说明书中,在表示或者描述处理或方法之处,方法的步骤可以按照任何顺序执行或者同时执行,除非从上下文中显然可以看出一个步骤依赖于先前执行的另一步骤。
本发明的基本思想是要提供一种监听浏览器中的事件的方法及其设备,所述方法包括:从浏览器接收浏览器发布的各种事件;以及将接收到的事件发布给用于实现与接收到的事件相关的功能的应用代理模块。
在本专利申请中,提供了一种通过使用客户端javascript编程来帮助用户收集这种信息的方法。本申请的核心思想是要构建javascript实现的***框架,该***框架监听所有客户端事件。更进一步地,***框架能够记录所有客户端事件。在收集了这些事件信息之后,终端用户能够获得这些信息并可选地,将其发送给应用支持人员。
为了完全支持事件记录,本发明引入了事件监听模块,用于监听事件以使得相关模块,例如作为事件的接收者的应用代理模块和可选的事件处理模块,都能够获得事件。然后,应用代理模块和可选的事件处理模块分别进行接收到的事件进行操作。事件处理模块可以有机会记录所有客户端事件。
出于保护终端用户的隐私的考虑,事件处理模块应当仅在接收到用户的启用命令时才附接到事件监听模块上,并且一旦接收到用户的禁用命令,就与事件监听模块分离。
需要注意的是:在本申请文件中以Javascript实现的AJAX为例说明了本发明的核心思想,但是本领域技术人员应当明白本发明不限于此技术,本申请并不绑定于任何具体的浏览器编程语言及框架,而是任何浏览器支持的语言都可应用本发明中。
此外,需要注意的是:在本申请中使用的术语“监听”是指:能够获得(即,接收)并分发(即,发送)。在本发明中,对事件的监听是指能够获得事件通知并分发给相应的部件。
此外,还需要注意的是:在本申请中使用的术语“注册”是指:执行某种动作从而使得其它部件能够获知自己的存在。下文中将分别对事件监听模块、应用代理模块和事件处理模块的注册进行介绍。
在web浏览器技术中,用户界面组件是执行特定功能的可重用对象或程序,其被设计为与其它组件和应用程序一起工作。通常而言,UI组件就是可以作为用户交互接口的组件,比如“按钮,下拉框、单选框、文本框”等。在软件产品中,事件指的是由用户或者某种设备,比如键盘、鼠标等发起的动作。理论上说,用户可见的一切UI组件,均可触发事件。例如,如果事件定义″onclick=function1()″出现在″按钮1″上,那么表示如果用户单击“按钮1”,则就会发出请求触发″function1″的通知并触发″function1″执行。通常,绝大部分UI组件都没有进行事件定义(如″onclick=function1()″)。本发明可根据业务需要,找到具有相关事件定义的用户界面组件,并对其执行相关操作。
首先,结合图3和图4说明在根据本发明的浏览器架构中执行的过程。
图3是示出了根据本发明的事件监听模块中执行的处理的示意性流程图。
在步骤310处,处理开始。
在步骤320处,执行第一注册,即,事件监听模块将其自己注册为各种事件的***,并使其自己为浏览器的各个GUI部件可见。
在第一注册完成后,事件监听模块能够接收到浏览器中的所有事件。可选地,事件监听模块还执行通知第一注册完成的步骤。
在步骤330处,事件监听模块从浏览器接收浏览器发布的各种事件。
在步骤340处,将接收到的事件发布给应用代理模块。应用代理模块用于实现与接收到的事件相关的功能。
在步骤350处,处理结束。
图4示出了在根据本发明的事件处理模块中执行的处理的示意性流程图。
在步骤410处,处理开始。
在步骤420处,事件处理模块确定接收到来自用户的启用命令。如果没有接收到来自用户的启用命令,则继续等待,否则,前进到步骤430。
在步骤430处,事件处理模块注册其自己。在注册完成后,事件处理模块从事件监听模块接收所有事件。
在步骤440处,已经注册的事件处理模块从事件监听模块接收各种事件通知。
在步骤450处,事件处理模块基于策略库中的策略选择事件通知,并将所选的事件通知以预定格式存储在数据库中。
可选地,根据来自用户的发送命令或策略库中的策略,将所选的事件通知发送给用户或后台服务器。
在步骤430、步骤440和步骤450中的任一步骤处,只要从用户接收到禁用事件处理模块的命令,就立即前进到步骤460。
在步骤460处,注销事件处理模块,然后,前进到步骤470。
在步骤470处,结束本处理。
以上步骤的具体实现在下文中将进行详细描述,在此不再重复。
为了更清楚地说明本发明,以下参照图3描述本发明的示例性实施例。图5是示出了根据本发明的引入了事件监听模块的浏览器架构的示意框图。如图5所示,根据本发明的浏览器架构包括浏览器510、事件监听模块520和应用代理模块530。可选地,根据本发明的浏览器架构还包括事件处理模块540。
浏览器510与现有技术的浏览器一样,用于向用户显示相关信息并且可选地,还向用户提供按钮、链接等以在用户选择时向用户提供相关的功能。
事件监听模块520包括用于从浏览器接收浏览器发布的各种事件的接收单元522以及用于将接收到的事件发布给应用代理模块发布单元,所述应用代理模块用于实现与接收到的事件相关的功能。事件监听模块520是本发明为现有技术的浏览器提供的功能模块。在运行事件监听模块520之前,事件监听模块520将其自身注册为事件的唯一接触点,并使其自己对于关心事件的其它部件是可见的。这可以通过事件监听模块520本身产生特定事件来实现,发消息来实现,或以本领域技术人员可以设想到的任何方式来实现。所述关心事件的其它部件包括应用代理模块530,以及可选的,事件处理模块540。
事件监听模块520与一般的事件***的不同之处在于它在接收浏览器的事件的同时对浏览器的事件起到了某种阻断的作用。换句话说,事件监听模块520应该注册在浏览器的事件监听代理的队列的首位,负责接收所有的浏览器事件,并且阻止事件向其它事件监听代理直接传播,从而保证了其是事件的唯一接触点。
事件监听模块520象事件总线那样工作。在浏览器510和应用代理模块530之间的所有事件都由事件监听模块520接收并由事件监听模块520分发。事件监听模块520将监听来自浏览器510的GUI各个部件的事件以及AJAX事件。GUI各个部件的事件包括鼠标移动、鼠标点击、鼠标双击、鼠标移入/移出GUI部件、键盘敲入,甚至语音输入等等。AJAX事件包括AJAX请求发送、AJAX请求收到、AJAX响应检索等等。这些事件对于本领域技术人员而言是公知的。
事件监听模块520是框架服务而非领域专用应用。事件监听模块520应当被注册为用于各种事件的单个接触点。
以下以基于javascript的浏览器为例,具体说明事件监听模块520的注册过程:
1.首先,事件监听模块520在启动之后,遍历在浏览器510页面上的可触发事件的用户界面组件。
基于当前的假设,事件监听模块520为纯javascript对象,它对外提供的方法和浏览器的事件一一对应,比如:onClick()、onLoad()、onChange()等等,而开发人员在UI组件上声明事件,如:″<inputid=″btn1″type=″button″onclick=″function1()″>″;
2.其次,在事件监听模块520发现所述用户界面组件中存在所需的事件定义的用户界面组件时,将所述所需的事件定义所指向的函数替换为实现所述从浏览器接收浏览器发布的各种事件的步骤的函数。也就是说,如果事件监听模块520发现UI组件上面存在着事件定义,则将其替换为事件监听模块520的相应方法并存储UI组件与事件定义所指向的函数的关联关系。该关联关系可以存储在任何地方,由于其存储与本发明无关,故在此不再赘述。
如上例中的″onclick=″function1()″,会被替换为″onclick=″eventManager.onClick(args,this)″,并且存储UI组件″btn1″与事件定义″function1″的对应关系。
3.最后,事件监听模块520存储所述存在所需的事件定义的用户界面组件与所述所需的事件定义所指向的函数之间的对应关系。也就是说,事件监听模块520在注册成功后,即,全部替换完成之后,向页面上的所有UI组件通知其存在。
至此,事件监听模块520的注册完成。事件监听模块520的注册可以在事件监听模块520首次启动时执行,也可以在浏览器的UI界面被动态加载后执行,当然,也可以是根据需要规定的任何其它时间。
在事件监听模块520注册成功之后,事件监听模块520会读取浏览器510本身维护的注册表,以发现当前存在哪些应用代理模块和事件处理模块。浏览器510的注册表是根据本发明提供的,用于记载当前哪些应用代理模块和事件处理模块需要接收浏览器的各种事件。根据本发明的注册表可以被浏览器510、事件监听模块520、应用代理模块530和事件处理模块540访问。该注册表可以被实现为配置文件、队列等等形式,只要可以存储相关信息并能被相关部件访问就可以。此外,优选地,每次注册表被改变时,就通知事件监听模块520以触发它再次读取该注册表。
下面示出了注册表的一个示意性例子:
事件接收者 | 备用字段 |
应用代理模块1 | …… |
事件处理模块 | …… |
应用代理模块2 | …… |
…… | …… |
下面示出了注册表的另一个示意性例子:
部件名称 | 是否是事件接收者 | 备用字段 |
应用代理模块1 | 是 | …… |
事件处理模块 | 否 | …… |
应用代理模块2 | 否 | …… |
…… | …… |
还以上例为例,在事件监听模块520在注册成功后,当用户点击UI组件″btn1″后,事件监听模块520的onClick方法会被调用,同时函数参数以及关联的UI组件″btn1″也会一并被传入事件监听模块520的onClick方法。如果通过访问注册表事件监听模块520已经得知应用代理模块530和事件处理模块540都需要接收事件,事件监听模块520会将该请求分发到应用代理模块和事件处理模块中。应用代理模块530根据在步骤2中存储的对应关系,判断应该调用″function1″,则代理调用″function1″并将参数传入,完成功能。而事件处理模块根据策略,执行本地记录日志,以及可选地,发送到远程服务器等动作。
用户还可以选择注销事件处理模块540。一旦用户发出了禁用事件处理模块540的指令,事件处理模块540就从注册表中删除与自己有关的信息。对注册表的删除触发事件监听模块520,使其不再将事件通知发送给事件处理模块540。
应用代理模块530如现有技术中的一样是商务领域逻辑,即根据浏览器上的GUI应用的需要而定义的。现有技术的应用代理模块接收到浏览器发出的事件通知,包括:(1)需要调用的函数名称,(2)参数,(3)相关联的UI组件;并基于上述数据调用目标函数,完成与该事件通知相关的程序动作,即,实现与该事件通知相关的功能。应用代理模块530与现有技术中的应用代理模块在功能上是相同的,但是,根据本发明的应用代理模块530与GUI部件之间的发布事件和接收事件都必须经过事件监听模块520,并且应用代理模块根据以上几项数据和之前事件监听模块建立的函数与UI组件的对照表,分析出需要调用的函数。此外,虽然在图5中仅仅示出了一个应用代理模块530,但是本领域技术人员应当理解,可以有不止一个应用代理模块530。应用代理模块530的数量与浏览器的页面的实现方式相关,例如,对于javascript实现的UI界面,每个UI页面对应于一个应用代理模块,而对于插件实现的UI界面,全部UI页面都对应于一个应用代理模块。
根据本发明的应用代理模块530也有一个注册过程。在见到事件监听模块520之后,即,得知事件监听模块520已注册之后,应用代理模块530立即注册其自己为***,而不是向浏览器各个GUI组件注册其自己。所述注册过程是通过在根据本发明的注册表将其自身记录为事件接收者来实现的。注册成功之后,应用代理模块530只从事件监听模块520接收事件通知并且采取相应的动作。此外,应用代理模块530的注册可以发生在加载UI页面之后,在浏览器启动之后,也可以在得知事件监听模块520已注册之后。当然,应用代理模块530的注册可以发生在任何所需的时间。
应用代理模块530和事件处理模块540都是作为事件监听模块520的事件接收者存在的,其中应用代理模块530是必需的,事件处理模块540是可选的。所谓事件接收者,就是实际的事件处理模块。应用代理模块530负责将事件转发到实际实现浏览器UI组件的功能的功能模块,来完成用户的操作;而事件处理模块540则负责根据预先制定的策略来记录每条事件。
可选地,根据本发明的浏览器架构还包括事件处理模块540。事件处理模块540完全是事件的消费者。事件处理模块540根据预定策略选择并存储信息以供进一步分析使用,如上所述,这里的“存储”可以是临时存储也可以是永久存储。
事件处理模块540只有在接收到来自用户的启用命令时才启动,并且无论何时,只要接收到来自用户的禁用命令,就立即停止一切动作。
图8是示出了根据本发明的具有启用事件处理模块的按钮的浏览器的GUI界面的示意图。一旦用户点击按钮810,就启用了事件处理模块540。首先,事件处理模块540注册其自己为事件接收者以便获得事件通知。所述的注册过程是通过在根据本发明的注册表将其自身记录为事件接收者来实现的。而一旦用户通过点击按钮810禁用了事件处理模块540,事件处理模块540再次访问注册表以从注册表中删除与其自己相关的信息。
在注册成功之后,当事件到达事件监听模块520时,事件监听模块520将所述事件发送到应用代理模块530和事件处理模块540。为了使事件处理模块540与领域专用的应用代理模块320分离开从而易于插拔,才使事件处理模块540成为单独的***。当然,本领域技术人员可以容易地设想到事件监听模块520可以与事件处理模块540集成在一起,以便监听并存储或发送相关事件。
在接收到事件之后,事件处理模块540将使用其内部数据结构来记录事件信息以供进一步分析使用。图6示出了根据本发明的事件处理模块的配置的示意性框图。如图6所示,事件处理模块540包括策略库610、选择器620、发送器630和数据库640。
选择器620从事件监听模块520接收各种事件通知,并根据策略库610中的策略进行选择,然后把所选择的事件以预定的数据格式存储在数据库640中。此外,选择器620也可以响应于来自用户的命令,将存储在数据库640中的事件数据发送给用户和/或浏览器以便在GUI上显示出来。
策略库610存储用于选择事件的标准。策略库610中的策略可以是用户自己、开发商、和/或其它人员定义的,这视具体的应用而定。策略库610中的策略是例如记录所有事件,记录包括鼠标移动、点击等的鼠标事件,记录键盘输入,记录一种或多种AJAX事件,用户输入之间的等待时间,记录xxxx年xx月xx日xx时xx分xx秒至yyyy年yy月yy日yy时yy分yy秒时间段内的某种事件、接收到事件后是记录到数据库中还是立即发送给服务器、接收到事件后是否在记录的同时发送事件通知给服务器、用户是否有权限打开和/或关闭事件处理模块、即使用户关闭事件处理模块是否按照默认的规则记录事件、存储是临时存储还是永久存储等等。需要指出的是,发送器420接收的用户命令也可以是策略库610中存储的策略之一。这里给出的选择策略仅仅是作为示例,而非将本发明限制于此。本领域技术人员可以根据需要规定策略库610中的策略。
数据库640用于存储来自选择器620的数据。数据库640可以以任意合适的格式存储所选事件的信息,例如,以多元组的形式,诸如(事件类型,事件发生时间,与事件相关的GUI部件)。虽然在本文中使用数据库640来说明事件信息的存储,但是本领域技术人员应当知道:所述数据库640可以是单个文件也可以是某一存储区域,或者是可以存储信息的任何其它形式,并且可以是永久存储也可以是临时存储或缓存,这由策略库中的策略来限定。
发送器630按照用户的命令将相关的数据发送给浏览器以供在GUI上显示或发送给用户人员以供其做进一步分析使用。在本文中所述的用户人员指的是任何被授权获得事件的相关人员。
虽然在图4中仅示出了发送器630仅与数据库640相连,但是同时发送器630也可以与选择器620和数据库640二者相连,以便不仅实时发送来自选择器620的事件数据,还可以检索和发送来自数据库的事件数据。
图7是示出了根据本发明的引入了事件监听模块的可替换浏览器架构的示意框图。图7与图5不同之处仅在于事件监听模块和事件处理模块被集成在一起。在此浏览器架构下,替代注册或注销事件处理模块使得其成为或不再是事件的接收者,还可以使用户的启用或禁用指示直接触发事件处理模块以使其被启用或禁用。可替换浏览器架构中的其它具体操作与前相似,在此不再赘述。
图9是示出了根据本发明的在启用了事件处理模块后的浏览器的GUI界面的示意图。在用户点击了如图5所示的GUI上显示的跟踪按钮810后,显示跟踪菜单910。如图9所示,跟踪菜单910包括如下选项:开/关跟踪功能,示出跟踪记录,提交记录给服务器,其它。当用户选择了示出跟踪记录选项后,显示跟踪记录,如附图标记920所指示的。图6所示的GUI显示仅仅是示例性,本领域技术人员根据需要可以以其它形式显示菜单和跟踪记录以及显示更多或更少的菜单选项。
本发明通过引入在web容器中允许的javascript监视器,提供了解决客户监视问题而不需任何专用工具的解决方案。使用这种监视器,用户可以通过提交记录结果给支持人员来报告问题,从而支持人员可以容易地再现程序缺陷。并且该技术方案对用户更友好,支持人员可以提供自动程序缺陷分析工具以帮助用户找出解决问题的正确方法或者某些临时工作区。
通过在实施方案中引入用户选择模式,本发明可以实现最大松耦合,这样事件处理模块可以附接到事件监听模块上,也可以与事件监听模块拆分,而不会干扰应用逻辑监视器。
所收集的信息可以用于:
1.支持人员分析信息并尝试找出所需信息;
2.支持人员使用某些GUI工具来帮助再现问题;
3.支持人员提供某些分析界面,并且根据前面收集的某些程序缺陷特征信息自动分析信息。然后,将分析结果立即发送给终端用户。所述结果可以是某些正确的执行过程、工作区方法或仅仅要求用户等待问题的确定。需要注意的是,对所收集的信息的处理不是本发明的关键所在。以上描述的目的是要示出收集信息能够给客户支持领域带来巨大利益的可能性。
与以上所列举的现有技术中的解决方案相比,本发明具有以下益处:
1.不需要外部工具(商业或免费产品)依赖(具有支持javascript的web浏览器就足够了);
2.在收集信息时几乎没有痕迹,即,几乎对用户的操作没有影响;
3.用户可以自己决定打开/关闭监视工具。
通过本实现方式,可以收集详细的客户端信息而没有给终端用户带来任何不便之处。这将大大提高支持人员的工作效率。
应该理解,以上出于说明清楚的目的参照不同功能部件和处理器对本发明的实施例进行了描述。然而,显然,在不偏离本发明的条件下,可在不同功能部件或处理器之间使用任何合适的功能分布。例如,所示出的由分立处理器或控制器执行的功能可由同一处理器或控制器执行。因此,仅将针对具体功能部件的描述视为是对用于提供所述功能的合适装置的描述,而不表示严格的逻辑或物理结构或组织。
本发明可采用任何适宜的方式实现,包括硬件、软件、固件或其任何组合。或者,可将本发明至少部分地实现为在一个或多个数据处理器和/或数字信号处理器上运行的计算机软件。本发明的实施例的元件和组件可采用任何合适的方式在物理上、功能上和逻辑上实现。的确,可将该功能实现于单个部件、多个部件中,或作为其他功能部件的一部分。这样,可将本发明实现在单个部件中,或将其在物理上和功能上分布在不同部件和处理器之间。
此外,尽管是单独列出,但多个装置、元素或方法步骤可通过例如单个部件或处理器实现。另外,尽管可将各个特征包括在不同权利要求中,但有可能将其有利地进行组合,并且包括在不同权利要求中并不表示特征组合不可行和/或无益。另外,在一类权利要求中包括某特征并不表示局限于该类,而是表示只要合适,该特征同样可应用于其他权利要求类。此外,在权利要求中特征的顺序并不表示特征起作用的任何特定顺序,特别是在方法权利要求中各步骤的顺序并不表示一定按照该顺序执行这些步骤。而是,这些步骤可采用任何合适的顺序执行。
本发明通过使用本发明的实施例的详细说明被描述,这些实施例作为例子被提供,以及不打算限制本发明的范围。所描述的实施例包括不同的特性,不是所有的这些特性在本发明的所有的实施例中都是需要的。本发明的某些实施例仅仅利用某些特性或特性的可能的组合。所描述的本发明的实施例的变例和包括在描述的实施例中指出的特性的不同的组合的本发明的实施例是本领域技术人员将会设想到的。
Claims (19)
1.一种监听浏览器中的事件的方法,包括:
从浏览器接收浏览器发布的各种事件;以及
将接收到的事件发布给应用代理模块,所述应用代理模块用于实现与接收到的事件相关的功能。
2.如权利要求1所述的方法,所述方法还包括:在所述从浏览器接收浏览器发布的各种事件的步骤之前,执行第一注册的步骤,其中所述执行第一注册的步骤还包括:
遍历在浏览器页面上的可触发事件的用户界面组件;
在发现所述用户界面组件中存在所需的事件定义的用户界面组件时,将所述所需的事件定义所指向的函数替换为实现所述从浏览器接收浏览器发布的各种事件的步骤的函数;以及
存储所述存在所需的事件定义的用户界面组件与所述所需的事件定义所指向的函数之间的对应关系。
3.如权利要求2所述的方法,所述方法还包括:
响应于所接收到的事件,应用代理模块基于所存储的对应关系,调用所述所需的事件定义所指向的函数来实现与接收到的事件相关的功能。
4.如权利要求3所述的方法,所述执行第一注册的步骤还包括:通知第一注册完成的步骤。
5.如权利要求4所述的方法,所述方法还包括步骤:
所述应用代理模块响应于该通知,进行第二注册;并且
其中所述进行第二注册的步骤包括:
在注册表中将所述应用代理模块记录为事件接收者。
6.如权利要求1-4中的任一个所述的方法,还包括步骤:
在收到浏览器的用户的启用指令之后,执行第一操作以使得所接收到的事件可被用户所得;以及
在收到用户的禁用指令之后,执行第二操作以使得所接收到的事件不可被用户所得。
7.如权利要求6所述的方法,其中所述第一操作是注册或触发,所述第二操作是注销或触发。
8.如权利要求1-4中的任一个所述的方法,还包括步骤:基于预定策略,选择可被用户所用的接收到的事件并存储事件通知。
9.如权利要求8所述的方法,其中,所述预定策略包括记录所有事件、记录包括鼠标移动、点击等的鼠标事件、记录键盘输入、记录一种或多种AJAX事件、用户输入之间的等待时间、接收到事件后是记录到数据库中还是立即发送给服务器、接收到事件后是否在记录的同时发送事件通知给服务器、用户是否有权限打开和/或关闭事件处理模块、即使用户关闭事件处理模块是否按照默认的规则记录事件、记录某一时间段内的某种事件、存储是临时存储还是永久存储中的至少一个。
10.一种监听浏览器中的事件的事件监听装置,包括:
接收单元,用于从浏览器接收浏览器发布的各种事件,以及
发布单元,用于将接收到的事件发布给应用代理模块,所述应用代理模块用于实现与接收到的事件相关的功能。
11.如权利要求10所述的事件监听装置,还包括执行第一注册的注册单元,所述注册单元还包括:
用于遍历在浏览器页面上的可触发事件的用户界面组件的部件;
用于在发现所述用户界面组件中存在所需的事件定义的用户界面组件时,将所述所需的事件定义所指向的函数替换为实现所述从浏览器接收浏览器发布的各种事件的步骤的函数的部件;以及
用于存储所述存在所需的事件定义的用户界面组件与所述所需的事件定义所指向的函数之间的对应关系的部件。
12.如权利要求11所述的事件监听装置,其中所述应用代理模块响应于所接收到的事件,基于所存储的对应关系,调用所述所需的事件定义所指向的函数来实现与接收到的事件相关的功能。
13.如权利要求11所述的事件监听装置,其中所述注册单元还包括:用于通知第一注册完成的部件。
14.如权利要求13所述的事件监听装置,其中所述应用代理模块响应于接收到来自所述事件监听模块的通知,进行第二注册;并且
其中,所述应用代理模块通过在注册表中将自己记录为事件接收者来进行第二注册。
15.如权利要求10-14中的任一个所述的事件监听装置,其中所述接收单元与用于处理事件的事件处理模块相连,所述事件处理模块在收到用户的启用指令之后,进行注册并从事件监听模块接收所述事件,而在接收到用户的禁用指令之后,注销自身。
16.如权利要求15所述的事件监听装置,其中所述事件处理模块通过在注册表中将自身记录为事件接收者来进行注册,并且通过从注册表中删除与自身相关的信息来进行注销。
17.如权利要求16所述的事件监听装置,其中所述事件处理模块基于预定策略,选择并存储所接收到的事件通知。
18.如权利要求11所述的事件监听装置,其中,所述预定策略包括记录所有事件、记录包括鼠标移动、点击等的鼠标事件、记录键盘输入、记录一种或多种AJAX事件、用户输入之间的等待时间、接收到事件后是记录到数据库中还是立即发送给服务器、接收到事件后是否在记录的同时发送事件通知给服务器、用户是否有权限打开和/或关闭事件处理模块、即使用户关闭事件处理模块是否按照默认的规则记录事件、记录某一时间段内的某种事件、存储是临时存储还是永久存储中的至少一个。
19.一种浏览器设备,包括根据权利要求10-18之一所述的设备。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN200810168112A CN101685451A (zh) | 2008-09-27 | 2008-09-27 | 监听浏览器中的事件的方法和事件监听装置及浏览器设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN200810168112A CN101685451A (zh) | 2008-09-27 | 2008-09-27 | 监听浏览器中的事件的方法和事件监听装置及浏览器设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN101685451A true CN101685451A (zh) | 2010-03-31 |
Family
ID=42048615
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN200810168112A Pending CN101685451A (zh) | 2008-09-27 | 2008-09-27 | 监听浏览器中的事件的方法和事件监听装置及浏览器设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101685451A (zh) |
Cited By (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101894162A (zh) * | 2010-07-22 | 2010-11-24 | 北京天融信科技有限公司 | 一种动态网络事件关联与联动的实现方法和装置 |
CN102654831A (zh) * | 2011-03-04 | 2012-09-05 | 百度在线网络技术(北京)有限公司 | 一种集中控制web页面事件与状态的装置和方法 |
CN103207748A (zh) * | 2012-01-17 | 2013-07-17 | 腾讯科技(深圳)有限公司 | 基于浏览器扩展实现响应的方法及浏览器 |
CN103377109A (zh) * | 2012-04-13 | 2013-10-30 | 国际商业机器公司 | 计算机实现的方法和*** |
CN104503748A (zh) * | 2014-12-12 | 2015-04-08 | 珠海金山网络游戏科技有限公司 | 一种基于事件驱动的编辑器***及方法 |
CN104601543A (zh) * | 2014-12-05 | 2015-05-06 | 百度在线网络技术(北京)有限公司 | 鉴别软件篡改浏览器主页的方法和*** |
CN104965701A (zh) * | 2015-06-12 | 2015-10-07 | 北京奇虎科技有限公司 | 获取应用信息的方法及装置 |
CN105573756A (zh) * | 2015-12-15 | 2016-05-11 | 金蝶软件(中国)有限公司 | 一种脚本语言扩展方法及事件总线架构 |
CN106250107A (zh) * | 2016-07-18 | 2016-12-21 | 福建天泉教育科技有限公司 | 一种数据统计方法及*** |
CN106294116A (zh) * | 2015-06-11 | 2017-01-04 | 阿里巴巴集团控股有限公司 | 记录和重现操作过程的方法、装置和*** |
CN106775226A (zh) * | 2016-12-05 | 2017-05-31 | 北京中交兴路信息科技有限公司 | 一种采集数据的*** |
CN108241542A (zh) * | 2016-12-23 | 2018-07-03 | 北京国双科技有限公司 | 事件控制***及方法 |
CN109213956A (zh) * | 2018-09-18 | 2019-01-15 | 成都知道创宇信息技术有限公司 | 一种生成上线产品介绍单页的方法 |
CN109710354A (zh) * | 2018-12-13 | 2019-05-03 | 平安普惠企业管理有限公司 | 页面监听方法、页面还原方法、装置、设备及介质 |
CN110134897A (zh) * | 2019-04-10 | 2019-08-16 | 口碑(上海)信息技术有限公司 | 浏览器窗口控制方法及装置 |
CN110413913A (zh) * | 2019-07-04 | 2019-11-05 | 北京字节跳动网络技术有限公司 | 一种页面刷新方法、装置、终端及存储介质 |
CN111563219A (zh) * | 2020-04-20 | 2020-08-21 | 北京明略软件***有限公司 | 一种web应用的状态管理方法及装置 |
CN113076501A (zh) * | 2021-04-21 | 2021-07-06 | 广州虎牙科技有限公司 | 一种页面处理方法、存储介质及设备 |
-
2008
- 2008-09-27 CN CN200810168112A patent/CN101685451A/zh active Pending
Cited By (26)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101894162B (zh) * | 2010-07-22 | 2012-05-09 | 北京天融信科技有限公司 | 一种动态网络事件关联与联动的实现方法和装置 |
CN101894162A (zh) * | 2010-07-22 | 2010-11-24 | 北京天融信科技有限公司 | 一种动态网络事件关联与联动的实现方法和装置 |
CN102654831A (zh) * | 2011-03-04 | 2012-09-05 | 百度在线网络技术(北京)有限公司 | 一种集中控制web页面事件与状态的装置和方法 |
CN103207748B (zh) * | 2012-01-17 | 2016-03-02 | 腾讯科技(深圳)有限公司 | 基于浏览器扩展实现响应的方法及浏览器 |
CN103207748A (zh) * | 2012-01-17 | 2013-07-17 | 腾讯科技(深圳)有限公司 | 基于浏览器扩展实现响应的方法及浏览器 |
CN103377109A (zh) * | 2012-04-13 | 2013-10-30 | 国际商业机器公司 | 计算机实现的方法和*** |
US9628357B2 (en) | 2012-04-13 | 2017-04-18 | International Business Machines Corporation | Service compliance enforcement using user activity monitoring and work request verification |
US9608881B2 (en) | 2012-04-13 | 2017-03-28 | International Business Machines Corporation | Service compliance enforcement using user activity monitoring and work request verification |
CN104601543A (zh) * | 2014-12-05 | 2015-05-06 | 百度在线网络技术(北京)有限公司 | 鉴别软件篡改浏览器主页的方法和*** |
CN104503748A (zh) * | 2014-12-12 | 2015-04-08 | 珠海金山网络游戏科技有限公司 | 一种基于事件驱动的编辑器***及方法 |
CN106294116A (zh) * | 2015-06-11 | 2017-01-04 | 阿里巴巴集团控股有限公司 | 记录和重现操作过程的方法、装置和*** |
CN104965701B (zh) * | 2015-06-12 | 2018-01-16 | 北京奇虎科技有限公司 | 获取应用信息的方法及装置 |
CN104965701A (zh) * | 2015-06-12 | 2015-10-07 | 北京奇虎科技有限公司 | 获取应用信息的方法及装置 |
CN105573756B (zh) * | 2015-12-15 | 2018-11-30 | 金蝶软件(中国)有限公司 | 一种脚本语言扩展方法及事件总线架构 |
CN105573756A (zh) * | 2015-12-15 | 2016-05-11 | 金蝶软件(中国)有限公司 | 一种脚本语言扩展方法及事件总线架构 |
CN106250107A (zh) * | 2016-07-18 | 2016-12-21 | 福建天泉教育科技有限公司 | 一种数据统计方法及*** |
CN106775226A (zh) * | 2016-12-05 | 2017-05-31 | 北京中交兴路信息科技有限公司 | 一种采集数据的*** |
CN106775226B (zh) * | 2016-12-05 | 2020-01-03 | 北京中交兴路信息科技有限公司 | 一种采集数据的*** |
CN108241542A (zh) * | 2016-12-23 | 2018-07-03 | 北京国双科技有限公司 | 事件控制***及方法 |
CN109213956A (zh) * | 2018-09-18 | 2019-01-15 | 成都知道创宇信息技术有限公司 | 一种生成上线产品介绍单页的方法 |
CN109710354A (zh) * | 2018-12-13 | 2019-05-03 | 平安普惠企业管理有限公司 | 页面监听方法、页面还原方法、装置、设备及介质 |
CN110134897A (zh) * | 2019-04-10 | 2019-08-16 | 口碑(上海)信息技术有限公司 | 浏览器窗口控制方法及装置 |
CN110413913A (zh) * | 2019-07-04 | 2019-11-05 | 北京字节跳动网络技术有限公司 | 一种页面刷新方法、装置、终端及存储介质 |
CN111563219A (zh) * | 2020-04-20 | 2020-08-21 | 北京明略软件***有限公司 | 一种web应用的状态管理方法及装置 |
CN111563219B (zh) * | 2020-04-20 | 2023-10-20 | 北京明略软件***有限公司 | 一种web应用的状态管理方法及装置 |
CN113076501A (zh) * | 2021-04-21 | 2021-07-06 | 广州虎牙科技有限公司 | 一种页面处理方法、存储介质及设备 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101685451A (zh) | 监听浏览器中的事件的方法和事件监听装置及浏览器设备 | |
US20200250024A1 (en) | High-volume distributed script error handling | |
KR101791623B1 (ko) | 트랜잭션 트레이스 그래프와 논리적 서브시스템들의 맵 사이의 관계들을 시각화하는 방법 | |
CN106294101B (zh) | 页面打点测试方法和装置 | |
US20050021289A1 (en) | Method for the use of information in an auxiliary data system in relation to automated testing of graphical user interface based applications | |
US20080126931A1 (en) | System and method for recording and reproducing user operation | |
CN108304498A (zh) | 网页数据采集方法、装置、计算机设备和存储介质 | |
CN110321154B (zh) | 一种微服务的接口信息展示方法、装置及电子设备 | |
US8335845B2 (en) | Web application management method and web system | |
US8275581B2 (en) | Managing statistical profile data | |
JP6564532B2 (ja) | クライアント−サーバトランザクションをアノテーションするためのシステム及び方法 | |
US20100017486A1 (en) | System analyzing program, system analyzing apparatus, and system analyzing method | |
US20130263156A1 (en) | Operation log collection method and device | |
US11507497B2 (en) | Methods and systems for automated testing using browser extension | |
CN107451049A (zh) | 使用真实用户监测数据进行客户端瓶颈分析 | |
US20100162113A1 (en) | Operation support system, operation support method, and operation support program | |
CN113987393A (zh) | 一种网页操作记录器、***、装置及方法 | |
CN110321278B (zh) | ***测试方法及装置、计算机设备、存储介质 | |
KR101123361B1 (ko) | 네트워크를 통한 학습 분산 환경 관리 서버, 방법 및 그방법을 실행하는 프로그램이 기록된 기록매체 | |
CN107451056B (zh) | 监听接口测试结果的方法及装置 | |
CN104123104B (zh) | 日志控制***及方法 | |
US9104573B1 (en) | Providing relevant diagnostic information using ontology rules | |
KR20100069147A (ko) | 웹사이트 품질 테스트 방법 및 시스템 | |
CN116126808A (zh) | 行为日志记录方法、装置、计算机设备和存储介质 | |
JP4451188B2 (ja) | 情報処理システム、及び情報処理システムの制御方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C02 | Deemed withdrawal of patent application after publication (patent law 2001) | ||
WD01 | Invention patent application deemed withdrawn after publication |
Open date: 20100331 |