进程间的脚本执行方法、系统及浏览器技术方案

技术编号:8532698 阅读:180 留言:0更新日期:2013-04-04 15:37
本发明专利技术公开了一种进程间的脚本执行方法、系统及浏览器。其中方法包括:所述活动对象通过通信窗口将脚本发送给所述代理对象;所述代理对象查询所述页面进程中与脚本执行有关的接口,根据该接口获取脚本执行方法;所述代理对象根据所述脚本执行方法执行所述脚本。本发明专利技术实现了不同进程之间脚本的执行。

【技术实现步骤摘要】

本专利技术涉及计算机网络
,具体涉及一种进程间的脚本执行方法、系统及浏览器
技术介绍
IPC (Inter-Process Communication,进程间通信)是指至少两个进程或线程间传送数据或信号的一些技术或方法。进程是计算机系统分配资源的最小单位。每个进程都有自己的一部分独立的系统资源,彼此是隔离的。为了能使不同的进程互相访问资源并进行协调工作,才有了进程间通信。不同的进程可以运行在同一计算机上或通过网络连接的不同计算机上。一般来说,在以下情况下需要实现进程间通信(I)数据传输一个进程需要将它的数据发送给另一个进程,发送的数据量在一个字节到几兆字节之间。(2)共享数据多个进程想要操作共享数据,一个进程对共享数据的修改,别的进程应该立刻看到。(3)通知事件一个进程需要向另一个或一组进程发送消息,通知它(它们)发生了某种事件(如进程终止时要通知父进程)。(4)资源共享多个进程之间共享同样的资源。为了作到这一点,需要内核提供锁和同步机制。(5)进程控制有些进程希望完全控制另一个进程的执行(如Debug进程),此时控制进程希望能够拦截另一个进程的所有陷入和异常,并能够及时知道它的状态改变。但是,现有技术还未提供关于进程间脚本执行的方案,利用现有的方法还不能实现进程间脚本的交互执行。
技术实现思路
鉴于上述问题,提出了本专利技术以便提供一种克服上述问题或者至少部分地解决上述问题的进程间的脚本执行系统、浏览器和相应的进程间的脚本执行方法。根据本专利技术的一个方面,提供了一种进程间的脚本执行方法,该方法适用于由运行于页面进程中的代理对象执行运行于独立进程中的活动对象的脚本,所述代理对象和活动对象通过预先建立的通信窗口进行通信,所述方法包括所述活动对象通过通信窗口将脚本发送给所述代理对象;所述代理对象查询所述页面进程中与脚本执行有关的接口,根据该接口获取脚本执行方法;所述代理对象根据所述脚本执行方法执行所述脚本。根据本专利技术的一个方面,提供了一种进程间的脚本执行系统,所述系统包括运行于页面进程中的代理对象、运行于独立进程中的活动对象以及分别在所述代理对象和活动对象中创建的一对通信窗口 ;该系统适用于由代理对象执行活动对象的脚本,所述代理对象和活动对象通过所述一对通信窗口进行通信;所述活动对象包括发送模块,适于通过通信窗口将脚本发送给所述代理对象;所述代理对象包括查询模块,适于查询所述页面进程中与脚本执行有关的接口,根据该接口获取脚本执行方法;执行模块,适于根据所述脚本执行方法执行所述脚本。根据本专利技术的一个方面,提供了一种浏览器,包括上述进程间的脚本执行系统。根据本专利技术的另一方面,提供了另一种进程间的脚本执行方法,该方法适用于由运行于独立进程中的活动对象执行运行于页面进程中代理对象的脚本,所述代理对象和活动对象通过预先建立的通信窗口进行通信,所述方法包括所述代理对象通过通信窗口将脚本发送给所述活动对象;所述代理对象通过调用所述活动对象的调度接口,获取所述脚本中待执行方法的调度标识;所述代理对象拦截页面进程中执行所述脚本中待执行方法的指令,将所述指令发送给所述活动对象;所述活动对象通过执行所述指令,执行所述脚本中待执行方法,而后将执行结果返回给代理对象。根据本专利技术的另一方面,提供了另一种进程间的脚本执行系统,所述系统包括运行于页面进程中的代理对象、运行于独立进程中的活动对象以及分别在所述代理对象和活动对象上创建的一对通信窗口 ;该系统适用于由活动对象执行页面进程中的脚本,所述活动对象和代理对象通过所述一对通信窗口进行通信;所述代理对象包括发送模块,适于通过通信窗口将脚本发送给所述活动对象;调度标识获取模块,适于通过调用所述活动对象的调度接口,获取所述脚本中待执行方法的调度标识;拦截模块,适于拦截页面进程中执行所述脚本中待执行方法的指令,将所述指令发送给所述活动对象;所述活动对象包括接收模块,适于接收所述代理对象中的发送模块发送的脚本以及拦截模块发送的指令;执行模块,适于通过执行所述指令,执行所述脚本中待执行方法,而后将执行结果返回给代理对象。根据本专利技术的另一个方面,提供了另一种浏览器,包括上述另一种进程间的脚本执打系统。根据本专利技术的一个方面提供的方案,在活动对象将脚本发送给代理对象之后,代理对象查询页面进程中与脚本执行有关的接口,根据该接口获取脚本执行的方法,进而根据脚本执行的方法执行活动对象发送过来的脚本,由此实现了不同进程之间脚本的执行,并且实现了运行于独立进程中的活动对象对运行于页面进程中的页面的控制。根据本专利技术的另一个方面提供的方案,在代理对象将脚本发送给活动对象之后,代理对象调用活动对象的调度接口获取脚本中待执行方法的调度标识;在代理对象将调度标识反馈给页面后,代理对象拦截页面进程执行脚本中待执行方法的指令,将指令发送给活动对象,由活动对象执行该指令,并将执行指令后获得的执行结果返回给代理对象,由此实现了不同进程之间脚本的执行,并且实现了运行于页面进程中的页面对运行于独立进程中的活动对象的控制。上述说明仅是本专利技术技术方案的概述,为了能够更清楚了解本专利技术的技术手段,而可依照说明书的内容予以实施,并且为了让本专利技术的上述和其它目的、特征和优点能够更明显易懂,以下特举本专利技术的具体实施方式。附图说明通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本专利技术的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中图1示出了本专利技术中Flash插件代理对象和Flash插件活动对象的创建过程的示意图;图2示出了根据本专利技术一个实施例的进程间的脚本执行方法的流程图;图3示出了根据本专利技术另一个实施例的进程间的脚本执行方法的流程图;图4示出了根据本专利技术一个实施例的进程间的脚本执行系统的结构框图;图5示出了根据本专利技术另一个实施例的进程间的脚本执行系统的结构框图。具体实施例方式下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。本专利技术提供的进程间的脚本执行方法是指页面进程与独立进程之间的脚本执行方法。其中页面进程运行Web页面的进程,独立进程是独立于页面进程的另一进程。在页面有ActiveX插件的情况下,页面进程运行ActiveX插件代理对象,独立进程运行ActiveX插件活动对象,该ActiveX插件活动对象是真正的ActiveX插件的对象。在以下实施例中,以ActiveX插件为Flash插件为例进行说明,但本专利技术不仅限于此。在介绍页面进程和独立进程之间的脚本执行方法之前,首先介绍Flash插件代理对象和Flash插件活动对象的创建过程。图1示出了本专利技术中Flash插件代理对象和Flash插件活动对象的创建过程的示意图。如图1所示,页面进程中运行有Web页面和Flash插件代理对象,独立进程中运行有空页面和Flash插件活动对象。其中,运行于页面进程中的Flash代理对象是通过拦截浏览器的页面进程创建Flash活动对象的过程本文档来自技高网...

【技术保护点】
一种进程间的脚本执行方法,该方法适用于由运行于页面进程中的代理对象执行运行于独立进程中的活动对象的脚本,所述代理对象和活动对象通过预先建立的通信窗口进行通信,所述方法包括:所述活动对象通过通信窗口将脚本发送给所述代理对象;所述代理对象查询所述页面进程中与脚本执行有关的接口,根据该接口获取脚本执行方法;所述代理对象根据所述脚本执行方法执行所述脚本。

【技术特征摘要】
1.一种进程间的脚本执行方法,该方法适用于由运行于页面进程中的代理对象执行运行于独立进程中的活动对象的脚本,所述代理对象和活动对象通过预先建立的通信窗口进行通信,所述方法包括 所述活动对象通过通信窗口将脚本发送给所述代理对象; 所述代理对象查询所述页面进程中与脚本执行有关的接口,根据该接口获取脚本执行方法; 所述代理对象根据所述脚本执行方法执行所述脚本。2.根据权利要求1所述的方法,所述运行于页面进程中的代理对象是通过拦截浏览器的页面进程创建活动对象的过程,替换实际要创建的活动对象而创建的; 所述运行于独立进程中的活动对象是在页面进程激活所述代理对象时,在独立于页面进程的独立进程中创建的; 在所述活动对象和代理对象中分别创建的所述通信窗口用于使活动对象和代理对象进行通信。3.根据权利要求2所述的方法,运行于所述页面进程中的代理对象为多个,运行于所述独立进程中的活动对象为多个,所述代理对象和活动对象一一对应,所述代理对象的通信窗口和与所述代理对象对应的活动对象的通信窗口具有对应的属性,通过该两个通信窗口实现活动对象和代理对象的通信。4.一种进程间的脚本执行方法,该方法适用于由运行于独立进程中的活动对象执行运行于页面进程中代理对象的脚本,所述代理对象和活动对象通过预先建立的通信窗口进行通信,所述方法包括 所述代理对象通过通信窗口将脚本发送给所述活动对象; 所述代理对象通过调用所述活动对象的调度接口,获取所述脚本中待执行方法的调度标识; 所述代理对象拦截页面进程中执行所述脚本中待执行方法的指令,将所述指令发送给所述活动对象; 所述活动对象通过执行所述指令,执行所述脚本中待执行方法,而后将执行结果返回给代理对象。5.根据权利要求4所述的方法,所述代理对象通过调用所述活动对象的调度接口,获取所述脚本中待执行方法的调度标识的步骤包括 所述代理对象通过调用所述活动对象的调度接口,让所述活动对象执行获取所述脚本中待执行方法的调度标识的方法,而后所述活动对象通过通信窗口将所述调度标识返回给所述代理对象。6.根据权利要求4或5所述的方法,所述运行于页面进程中的代理对象是通过拦截浏览器的页面进程创建活动对象的过程,替换实际要创建的活动对象而创建的; 所述运行于独立进程中的活动对象是在页面进程激活所述代理对象时,在独立于浏览器页面进程的独立进程中创建的; 在所述活动对象和代理对象中分别创建的所述通信窗口用于使活动对象和代理对象进行通信。7.根据权利要求6所述的方法,运行于所述页面进程中的代理对象为多个,运行于所述独立进程中的活动对象为多个,所述代理对象和活动对象一一对应,所述代理对象的通信窗口和与所述代理对象对应的活动对象的通信窗口具有对应的属性,通过该两个通信窗口实现活动对象和代理对象的通信。8.—种进程间的脚本执行系统,所述系统包括运行于页面进程中的代理对象、运行于独立进程中的活动对象以及分别在所述代理对象和活动对象中创建的一对通信窗口 ;该系统适用于由代理对象执行活动对象的脚本,所述代理对象和活动对象通过所述一对通...

【专利技术属性】
技术研发人员:李锦伟贺跃松陈志付俣任寰
申请(专利权)人:北京奇虎科技有限公司奇智软件北京有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1