CN114968407A - 插件调用方法、装置、电子设备及存储介质 - Google Patents
插件调用方法、装置、电子设备及存储介质 Download PDFInfo
- Publication number
- CN114968407A CN114968407A CN202210596399.9A CN202210596399A CN114968407A CN 114968407 A CN114968407 A CN 114968407A CN 202210596399 A CN202210596399 A CN 202210596399A CN 114968407 A CN114968407 A CN 114968407A
- Authority
- CN
- China
- Prior art keywords
- event
- plug
- queue
- completed
- calling
- 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
- 238000000034 method Methods 0.000 title claims abstract description 69
- 238000003672 processing method Methods 0.000 claims abstract description 19
- 230000006870 function Effects 0.000 claims description 58
- 238000004891 communication Methods 0.000 claims description 15
- 238000004590 computer program Methods 0.000 claims description 10
- 238000010276 construction Methods 0.000 claims description 2
- 238000011161 development Methods 0.000 description 10
- 238000012545 processing Methods 0.000 description 10
- 230000008569 process Effects 0.000 description 8
- 238000005516 engineering process Methods 0.000 description 7
- 230000001360 synchronised effect Effects 0.000 description 7
- 238000010586 diagram Methods 0.000 description 6
- 238000009877 rendering Methods 0.000 description 6
- 239000004575 stone Substances 0.000 description 4
- 230000009286 beneficial effect Effects 0.000 description 3
- 230000000903 blocking effect Effects 0.000 description 2
- 230000019771 cognition Effects 0.000 description 2
- 238000012423 maintenance Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000004458 analytical method Methods 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000000151 deposition Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000011022 operating instruction Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Images
Classifications
-
- 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
- G06F9/44526—Plug-ins; Add-ons
-
- 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/448—Execution paradigms, e.g. implementations of programming paradigms
-
- 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)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
Abstract
本发明提供了一种插件调用方法、装置、电子设备及存储介质,该方法包括:构建第一事件队列和插件模板;基于第一插件中的第一事件包括的数据处理方法对插件模板进行配置,生成第二插件;判断第二插件中的第一事件是否异步加载完成;若确定第二插件中的第一事件未异步加载完成,将未异步加载完成的第一事件对应的第一事件调用函数存储至第一事件队列中;在确定第一事件队列中的第一事件异步加载完成后,调用第二插件依次执行第一事件队列中的第一事件。本发明提供的插件调用方法、装置、电子设备及存储介质,不仅能够避免页面或前端组件调用第一插件中的第一事件时自动执行自执行方法而由此导致的报错,还便于开发者观察、调用第二插件引入的内容。
Description
技术领域
本发明涉及前端技术领域,尤其涉及一种插件调用方法、装置、电子设备及存储介质。
背景技术
前端开发的网站在不断地迭代更新中成为了巨石应用,技术栈偏老旧,调试维护困难,在持续的迭代更新中前端开发的效率难以提升,开发团队中新进的成员由于技术栈认知较浅因此容易对巨石应用产生抗拒心理,长此以往开发效率会越来越低,由此产生的一种解决方式是注重前端开发的模块化和组件化,以在一定程度上提高产品质量和开发效率。
目前,在应用已存在的针对优化页面或前端组件的应用功能的不足或漏洞的第三方插件时,为避免重复劳动,一般可以直接利用该第三方插件,使用其数据处理方法及功能来进行一部分的数据处理,例如,服务器端渲染(SSR,Server-Side Rendering)技术等。
为了便于让开发者观察到引入的页面或前端组件中引入何种内容,调用第三方插件时往往希望是以同步的方式进行,但由于一些第三方插件在加载的过程中会自动执行自执行方法(如加载时的初始化等),该自执行方法中包含window API,容易导致在调用第三方插件的数据处理方法及功能的过程中报错(如SSR时,异步调用第三方插件容易出现报错)。因此,如何能够使页面或前端组件同步调用插件实现功能的同时避免出现报错就成为了一个亟待解决的技术问题。
发明内容
为了解决上述问题,本发明提供了一种插件调用方法、装置、电子设备及存储介质,以至少部分地解决上述问题。
根据本发明的一方面,提供了一种插件调用方法,其特征在于,包括:
构建第一事件队列和插件模板;
基于第一插件中的第一事件包括的数据处理方法对所述插件模板进行配置,生成第二插件;
判断所述第二插件中的所述第一事件是否异步加载完成;
若确定所述第二插件中的所述第一事件未异步加载完成,将未异步加载完成的所述第一事件对应的第一事件调用函数存储至所述第一事件队列中;
在确定所述第一事件队列中的第一事件异步加载完成后,调用所述第二插件依次执行所述第一事件队列中的第一事件。
在一些可选的实施例中,所述若确定所述第二插件中的所述第一事件未异步加载完成,将未异步加载完成的所述第一事件对应的第一事件调用函数存储至所述第一事件队列中,包括:若确定所述第二插件中的所述第一事件未异步加载完成,创建与未异步加载完成的所述第一事件对应的第一事件调用函数,并将所述第一事件调用函数存储至所述第一事件队列中。
在一些可选的实施例中,所述在确定所述第一事件队列中的第一事件异步加载完成后,调用所述第二插件依次执行所述第一事件队列中的第一事件,包括:在确定所述第一事件队列中的所述第一事件异步加载完成后,调用所述第二插件依次执行所述第一事件队列中的所述第一事件对应的第一事件调用函数。
在一些可选的实施例中,所述方法还包括:若确定所述第二插件中的所述第一事件异步加载完成,调用所述第二插件依次执行所述第一事件。
在一些可选的实施例中,所述若确定所述第二插件中的所述第一事件未异步加载完成,创建与未异步加载完成的所述第一事件对应的第一事件调用函数,并将所述第一事件调用函数存储至所述第一事件队列中之后,所述方法还包括:所述第二插件依次执行所述第一事件队列中的所述第一事件对应的所述第一事件调用函数,获得执行返回结果;根据所述执行返回结果,确定所述第一事件队列中的所述第一事件是否异步加载完成。
在一些可选的实施例中,若确定未异步加载完成的所述第二插件中的所述第一事件包括多个,将未异步加载完成的多个所述第一事件分别存储至不同的所述第一事件队列中。
根据本发明的另一方面,提供了一种插件调用装置,该插件调用装置包括:
构建模块,用于构建第一事件队列和插件模板;
生成模块,用于基于第一插件中的第一事件包括的数据处理方法对所述插件模板进行配置,生成第二插件;
判断模块,用于判断所述第二插件中的所述第一事件是否异步加载完成;
存储模块,用于若确定所述第二插件中的所述第一事件未异步加载完成,将未异步加载完成的所述第一事件对应的第一事件调用函数存储至所述第一事件队列中;
调用模块,用于在确定所述第一事件队列中的第一事件异步加载完成后,调用所述第二插件依次执行所述第一事件队列中的第一事件。
根据本发明的又一方面,提供了一种电子设备,包括:处理器、通信接口、存储器和通信总线,所述处理器、所述存储器和所述通信接口通过所述通信总线完成相互间的通信;所述存储器用于存放至少一可执行指令,所述可执行指令使所述处理器执行前述任一项所述的插件调用方法对应的操作。
根据本发明的再一方面,提供了一种计算机存储介质,其中,所述计算机存储介质存储有计算机指令,所述计算机指令用于使计算机执行根据前面任一项所述的插件调用方法。
根据本发明的再一方面,提供了一种计算机程序产品,其中,包括计算机程序,其中,所述计算机程序在被处理器执行时实现前面任一项所述的插件调用方法。
本发明提供的插件调用方法、装置、电子设备及存储介质,由于将第一插件中的第一事件异步加载到了第二插件中,而第二插件中不存在自执行方法,因此,能够避免页面或前端组件调用第一插件中的第一事件时自动执行自执行方法而由此导致的报错(包括但不限于SSR时出现的报错);并且在第二插件中的第一事件未异步加载完成时,将未异步加载完成的第一事件对应的第一事件调用函数存储至第一事件队列中,并在确定第一事件队列中的第一事件异步加载完成后,由页面或前端组件以同步的方式调用第二插件依次执行第一事件队列中的第一事件,因此,方便开发者观察、调用第二插件引入的内容。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明实施例中记载的一些实施例,对于本领域普通技术人员来讲,还可以根据这些附图获得其他的附图。
图1为本发明提供的一种示例性的插件调用方法的流程图;
图2为本发明提供的一种示例性的插件调用装置的框图;
图3为本发明提供的一种示例性的电子设备的结构框图。
具体实施方式
为了使本领域的人员更好地理解本发明实施例中的技术方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本发明实施例一部分实施例,而不是全部的实施例。基于本发明实施例中的实施例,本领域普通技术人员所获得的所有其他实施例,都应当属于本发明实施例保护的范围。
前端开发的网站在不断地迭代更新中成为了巨石应用,技术栈偏老旧,调试维护困难,在持续的迭代更新中前端开发的效率难以提升,开发团队中新进的成员由于技术栈认知较浅因此容易对巨石应用产生抗拒心理,长此以往开发效率会越来越低,由此产生的一种解决方式是注重前端开发的模块化和组件化,以在一定程度上提高产品质量和开发效率。目前,在应用已存在的针对优化页面或前端组件的应用功能的不足或漏洞的第三方插件时,为避免重复劳动,一般可以直接利用该第三方插件,使用其数据处理方法及功能来进行一部分的数据处理,例如,服务器端渲染(SSR,Server-Side Rendering)技术等。为了便于让开发者观察到引入的页面或前端组件中引入何种内容,调用第三方插件时往往希望是以同步的方式进行,但由于一些第三方插件在加载的过程中会自动执行自执行方法(如加载时的初始化等等),该自执行方法中包含window API,容易导致在调用第三方插件的数据处理方法及功能的过程中报错(如SSR时,异步调用第三方插件容易出现报错)。因此,如何能够使页面或前端组件同步调用插件实现功能的同时避免出现报错就成为了一个亟待解决的技术问题。
针对于此,根据本发明实施例中的一方面,提供了一种插件调用方法,其可以由插件调用装置执行,该插件调用装置可以是一个能够进行数据处理的计算机设备、服务器等,在此不进行限制。
图1为本发明提供的一种示例性的插件调用方法的流程图。如图1所示,该插件调用方法包括以下步骤:
步骤S101:构建第一事件队列和插件模板;
构建的第一事件队列可以用于存放第一插件中的第一事件。在创建第一事件队列时可以将第一事件队列初始化为空队列,以便于存放第一插件中的第一事件。例如,第一事件队列可以是一个数组,第一事件存储于第一事件队列中可以是指第一事件的标识(即第一事件对应的第一事件调用函数)存储于该数组中。后续执行第一事件时可以根据该标识执行与之对应的第一事件。此外,将第一事件队列初始化为空队列则可以是指将该数组初始化为空数组。
插件模板是可以用于构建插件的空的软件模板。该插建模板可以基于现有技术的模板来构建,在此不进行限制。具体地,可以将该插件模板初始化为空对象,以便于后续步骤对其进行配置。
步骤S102:基于第一插件中的第一事件包括的数据处理方法对插件模板进行配置,生成第二插件;
第一插件可以是第三方插件。第三方插件指的是非官方的软件,主要是为了提升软件性能或者增加功能而编写的软件,大多数的第三方插件都不是由软件的开发商所编写,而是使用者根据自身的需要编写的,其主要是针对页面或前端组件在应用功能上的不足或者漏洞。第一插件可以是任意现有技术的第三方插件,在此不进行限制,示例地,第一插件可以是神策插件。第一事件可以是第一插件提供的事件,以神策插件为例,该第一事件可以是埋点上报事件等,在执行埋点上报事件之后,可以将自定义的埋点上报到神策第三方系统(即神策插件)中。
本实施例中,在步骤S102中,可以基于第一插件中的第一事件包括的数据处理方法对插件模板进行配置,生成一个包括第一事件的数据处理方法的第二插件,在第二插件中的第一事件异步加载完后,可以从第二插件调用第一事件包括的数据处理方法来执行数据处理任务。
配置第二插件的过程可以参照现有技术的插件配置方式来理解,在此不进行赘述。
步骤S103:判断第二插件中的第一事件是否异步加载完成;
异步加载又称非阻塞加载,html页面在执行js的同时,还会继续进行后续页面的处理,而同步加载又称为阻塞加载,其会阻止html页面的后续处理,停止后续的解析,只有当当前加载完成,才能进行下一步操作。
其中,加载到第二插件中的第一事件可以是多个,且可以是不同类型的事件,调用第二插件执行不同类型的第一事件实现的功能可能不同。在判断第二插件中的第一事件是否异步加载完成后,可以基于判断的结果做出相应的应对,以适应调用第二插件的需求。
在步骤S103中,可以将第一插件中的第一事件异步加载到第二插件中,从而避免同步调用第一插件中的第一事件时第一插件自动执行自执行方法(如加载时的初始化等等),进而避免直接调用第一插件中的第一事件包括的数据处理方法的过程中导致的报错(包括但不限于服务器端渲染(SSR)时出现报错)。
步骤S104:若确定第二插件中的第一事件未异步加载完成,将未异步加载完成的第一事件对应的第一事件调用函数存储至第一事件队列中;
可选地,步骤S104具体包括:若确定第二插件中的第一事件未异步加载完成,创建与未异步加载完成的第一事件对应的第一事件调用函数,并将第一事件调用函数存储至第一事件队列中。
具体地,在确定第二插件中的第一事件未异步加载完成后,第一事件还不能被第二插件执行,页面或者前端组件不能调用第二插件并利用其中的第一事件包括的数据处理方法来执行数据处理任务,因此,本实施例创建与未异步加载完成的第一事件对应的第一事件调用函数,并将未异步加载完成的第一事件对应的第一事件调用函数存储至第一事件队列中,等待该第一事件异步加载完成。
本实施例中,该第一事件调用函数可以被第二插件执行,以确定第一事件队列中的第一事件是否加载完成。具体地,在确定第二插件中的第一事件未异步加载完成后,创建与未异步加载完成的第一事件对应的第一事件调用函数,并将第一事件调用函数存储至第一事件队列中,方便后续第二插件执行该第一事件调用函数确定第一事件队列中的第一事件是否加载完成。
在一些可选的实现方式中,在“若确定第二插件中的第一事件未异步加载完成,创建与未异步加载完成的第一事件对应的第一事件调用函数,并将第一事件调用函数存储至第一事件队列中”之后,该插件调用方法还包括:
第二插件依次执行第一事件队列中的第一事件对应的第一事件调用函数,获得执行返回结果;根据执行返回结果,确定第一事件队列中的第一事件是否异步加载完成。
其中,该执行返回结果可以是用于指示第一事件是否异步加载完成的结果。但具体的执行返回结果的类型本实施例中不进行限制,例如:在一种示例性的实现方式中,可以以1为异步加载完成,以0为未异步加载完成,则输出执行返回结果为1或者0;或者执行返回结果也可以是不同的文字标识,通过返回不同的文字标识指示该第一事件异步加载的不同结果(如加载成功或加载不成功),来确定第一事件队列中的第一事件是否异步加载完成。
由此,通过这种方式,可以确定第一事件队列中的第一事件是否加载完成,从而便于调用第二插件依次执行第一事件队列中的第一事件。
步骤S105:在确定第一事件队列中的第一事件异步加载完成后,调用第二插件依次执行第一事件队列中的第一事件。
在步骤S105中,在确定第一事件队列中的第一事件异步加载完成后,则页面或前端组件可以在此时调用第二插件依次执行第一事件队列中的第一事件,以消耗掉第一事件队列中累积的第一事件,从而完成数据处理任务。优选地,调用第二插件的方式为同步的方式进行调用。
其中,调用第二插件的页面或前端组件可以基于任意的前端框架。优选地,调用第二插件的页面或前端组件可以是Next.js框架,Next.js框架提供开发所需的所有功能,例如:混合静态和服务器端渲染、TypeScript支持、智能捆绑、路由预取等,并且无需配置可以开箱即用,较为方便。
可选地,步骤S105具体包括:在确定第一事件队列中的第一事件异步加载完成后,调用第二插件依次执行第一事件队列中的第一事件对应的第一事件调用函数。
由于第一事件调用函数是在第二插件中的第一事件未异步加载完成所创建的,该第一事件并未被执行,因此在第一事件队列中的第一事件异步加载完成后,调用第二插件依次执行第一事件队列中的第一事件对应的第一事件调用函数,以确定第一事件队列中的第一事件是否加载完成。
本实施例中,在步骤S103之后,本发明实施例的方法还包括:若确定第二插件中的第一事件异步加载完成,调用第二插件依次执行第一事件。
具体地,在确定第二插件中的第一事件异步加载完成后,页面或前端组件可以直接调用第二插件,利用第二插件中的第一事件包括的数据处理方法来执行数据处理任务。优选地,页面或前端组件调用第二插件的方式是以同步的方式进行调用。
需要说明的是,该步骤与步骤S104是步骤S103之后的两种判断结果,当第二插件中的第一事件异步加载完成后,第二插件与第一事件相关的插件内容被赋值,当第二插件中存在相应的赋值后,页面或者组件才能调用第二插件中的第一事件包括的数据处理方法来执行第一事件。因此,本实施例中可以通过检查第二插件内的相关插件内容有无赋值来确定第二插件中的第一事件是否加载完成。
可选地,在本发明实施例中,若确定未异步加载完成的第二插件中的第一事件包括多个,将未异步加载完成的多个第一事件分别存储至不同的第一事件队列中。
具体地,该多个第一事件可以是不同类型的事件,调用第二插件执行不同类型的第一事件实现的功能可能不同。例如,多个第一事件有第一事件A1、第一事件A2、第一事件A3,则将第一事件A1、第一事件A2、第一事件A3分别存储至三个不同的第一事件队列中。
本实施例在具体应用时,以SSR为例,可以将配置好的第二插件打包成一个文件,将SSR时需要的其他与第一插件无关的数据处理方法打包成另一个文件,以保证SSR时的兼容性。
需要说明的是,本实施例中除了对服务器端渲染(SSR)具备有益效果,对于客户端渲染(client-side rendering,CSR)一样具备有益效果。在应用时,在SSR时将SSR对应的第一插件中的第一事件异步加载到第二插件中,并同步调用第二插件,而在CSR时将CSR对应的第一插件的第一事件异步加载到第二插件中,并同步调用第二插件。具体可参照上面内容在此不进行赘述。
可以理解的是,上述实施例仅作为本发明实施例中的一些示例的实施例,而非对本发明实施例中的插件调用方法的任何限制。
本发明实施例提供的插件调用方法,由于将第一插件中的第一事件异步加载到了第二插件中,而第二插件中不存在自执行方法,因此,能够避免页面或前端组件调用第一插件中的第一事件时自动执行自执行方法而由此导致的报错(包括但不限于SSR时出现的报错);并且在第二插件中的第一事件未异步加载完成时,将未异步加载完成的第一事件对应的第一事件调用函数存储至第一事件队列中,并在确定第一事件队列中的第一事件异步加载完成后,由页面或前端组件以同步的方式调用第二插件依次执行第一事件队列中的第一事件,因此,方便开发者观察、调用第二插件引入的内容。
图2为本发明提供的一种示例性的插件调用装置的框图,如图2所示,基于与上述插件调用方法的同一发明构思,本发明实施例提供了一种插件调用装置200,该插件调用装置200包括:
构建模块201,用于构建第一事件队列和插件模板;
生成模块202,用于基于第一插件中的第一事件包括的数据处理方法对插件模板进行配置,生成第二插件;
判断模块203,用于判断第二插件中的第一事件是否异步加载完成;
存储模块204,用于若确定第二插件中的第一事件未异步加载完成,将未异步加载完成的第一事件对应的第一事件调用函数存储至第一事件队列中;
调用模块205,用于在确定第一事件队列中的第一事件异步加载完成后,调用第二插件依次执行第一事件队列中的第一事件。
在一些可选的实施例中,存储模块204具体用于:若确定第二插件中的第一事件未异步加载完成,创建与未异步加载完成的第一事件对应的第一事件调用函数,并将第一事件调用函数存储至第一事件队列中。
在一些可选的实施例中,调用模块205具体用于:在确定第一事件队列中的第一事件异步加载完成后,调用第二插件依次执行第一事件队列中的第一事件对应的第一事件调用函数。
在一些可选的实施例中,调用模块205还用于:若确定第二插件中的第一事件异步加载完成,调用第二插件依次执行第一事件。
在一些可选的实施例中,该装置还包括:确定模块(图中未示出),用于根据执行返回结果,确定第一事件队列中的第一事件是否异步加载完成,其中,执行返回结果由第二插件依次执行第一事件队列中的第一事件对应的第一事件调用函数而获得。
在一些可选的实施例中,存储模块204还用于:若确定未异步加载完成的第二插件中的第一事件包括多个,将未异步加载完成的多个第一事件分别存储至不同的第一事件队列中。
本发明实施例中的插件调用装置200,与前述实施例中的插件调用方法相对应,即上述插件调用方法中提到的插件调用装置,其相关的有益效果与上述的插件调用方法对应,因此该插件调用装置200的相关内容可参照上述的插件调用方法进行理解,在此不再进行赘述。
本发明实施例提供的插件调用装置,由于将第一插件中的第一事件异步加载到了第二插件中,而第二插件中不存在自执行方法,因此,能够避免页面或前端组件调用第一插件中的第一事件时自动执行自执行方法而由此导致的报错(包括但不限于SSR时出现的报错);并且在第二插件中的第一事件未异步加载完成时,将未异步加载完成的第一事件对应的第一事件调用函数存储至第一事件队列中,并在确定第一事件队列中的第一事件异步加载完成后,由页面或前端组件以同步的方式调用第二插件依次执行第一事件队列中的第一事件,因此,方便开发者观察、调用第二插件引入的内容。
图3为本发明提供的一种示例性的电子设备的结构框图,本发明实施例并不对电子设备的具体实现做限定。如图3所示,本发明实施例提供的电子设备300包括:处理器(processor)302、通信接口(Communications Interface)304、存储器(memory)306、以及通信总线308。其中:
处理器302、通信接口304、以及存储器306通过通信总线308完成相互间的通信。
通信接口304,用于与其它电子设备或服务器进行通信。
处理器302,用于执行程序310,具体可以执行前述任一插件调用方法实施例中的相关步骤。
具体地,程序310可以包括程序代码,该程序代码包括计算机操作指令。
处理器302可能是中央处理器CPU,或者是特定集成电路ASIC(ApplicationSpecific Integrated Circuit),或者是被配置成实施本发明实施例的一个或多个集成电路。智能设备包括的一个或多个处理器,可以是同一类型的处理器,如一个或多个CPU;也可以是不同类型的处理器,如一个或多个CPU以及一个或多个ASIC。
存储器306,用于存放程序310。存储器306可能包含高速RAM存储器,也可能还包括非易失性存储器(non-volatile memory),例如至少一个磁盘存储器。
程序310具体可以用于使得处理器302执行前述任一实施例中的插件调用方法。
程序310中各步骤的具体实现可以参见前述任一插件调用方法实施例中的相应步骤和单元中对应的描述,在此不赘述。所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的设备和模块的具体工作过程,可以参考前述方法实施例中的对应过程描述,在此不再赘述。
本发明实施例的再一方面还提供了一种计算机可读存储介质,计算机可读存储介质上存储有计算机指令,计算机指令在被处理器执行时,使处理器执行前述任一项的插件调用方法。
具体地,可以提供配有存储介质的系统或者装置,在该存储介质上存储着实现上述实施例中任一实施例的功能的软件程序代码,且使该系统或者装置的计算机(或CPU或MPU)读出并执行存储在存储介质中的程序代码。
在这种情况下,从存储介质读取的程序代码本身可实现上述实施例中任何一项实施例的功能,因此程序代码和存储程序代码的存储介质构成了本发明的一部分。
用于提供程序代码的存储介质实施例包括软盘、硬盘、磁光盘、光盘(如CD-ROM、CD-R、CD-RW、DVD-ROM、DVD-RAM、DVD-RW、DVD+RW)、磁带、非易失性存储卡和ROM。可选择地,可以由通信网络从服务器计算机上下载程序代码。
此外,应该清楚的是,不仅可以通过执行计算机所读出的程序代码,而且可以通过基于程序代码的指令使计算机上操作的操作系统等来完成部分或者全部的实际操作,从而实现上述实施例中任意一项实施例的功能。
此外,可以理解的是,将由存储介质读出的程序代码写到插入计算机内的扩展板中所设置的存储器中或者写到与计算机相连接的扩展模块中设置的存储器中,随后基于程序代码的指令使安装在扩展板或者扩展模块上的CPU等来执行部分和全部实际操作,从而实现上述实施例中任一实施例的功能。
本发明实施例的再一方面还提供了一种计算机程序产品,包括计算机程序,其中,计算机程序在被处理器执行时实现前述任一项的插件调用方法。应理解,本实施例中的各方案具有上述方法实施例中对应的技术效果,此处不再赘述。
需要说明的是,上述各流程和各系统结构图中不是所有的步骤和模块都是必须的,可以根据实际的需要忽略某些步骤或模块。各步骤的执行顺序不是固定的,可以根据需要进行调整。上述各实施例中描述的系统结构可以是物理结构,也可以是逻辑结构,即,有些模块可能由同一物理实体实现,或者,有些模块可能分由多个物理实体实现,或者,可以由多个独立设备中的某些部件共同实现。
对于本发明中的插件调用装置、电子设备、计算机可读存储介质、计算机程序产品的实施例而言,其介绍较为简略,其相关内容和有益效果可以参照前面的插件调用方法的各个实施例进行理解,在此不再进行赘述。
以上各实施例中,硬件模块可以通过机械方式或电气方式实现。例如,一个硬件模块可以包括永久性专用的电路或逻辑(如专门的处理器,FPGA或ASIC)来完成相应操作。硬件模块还可以包括可编程逻辑或电路(如通用处理器或其它可编程处理器),可以由软件进行临时的设置以完成相应操作。具体的实现方式(机械方式、或专用的永久性电路、或者临时设置的电路)可以基于成本和时间上的考虑来确定。
上文通过附图和优选实施例对本发明进行了详细展示和说明,然而本发明不限于这些已揭示的实施例,基与上述多个实施例本领域技术人员可以知晓,可以组合上述不同实施例中的代码审核手段得到本发明更多的实施例,这些实施例也在本发明的保护范围之内。
需要说明的是,本文使用的术语“包括”及其变形是开放性包括,即“包括但不限于”。术语“基于”是“至少部分地基于”。术语“一个实施例”表示“至少一个实施例”;术语“另一实施例”表示“至少一个另外的实施例”;术语“一些实施例”表示“至少一些实施例”。其他术语的相关定义将在下文描述中给出。需要注意,本发明中提及的“第一”、“第二”等概念仅用于对不同的装置、模块或单元进行区分,并非用于限定这些装置、模块或单元所执行的功能的顺序或者相互依存关系。
需要注意,本发明中提及的“一个”、“多个”的修饰是示意性而非限制性的,本领域技术人员应当理解,除非在上下文另有明确指出,否则应该理解为“一个或多个”。
最后应说明的是:以上实施例仅用以说明本发明实施例的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
Claims (10)
1.一种插件调用方法,其特征在于,包括:
构建第一事件队列和插件模板;
基于第一插件中的第一事件包括的数据处理方法对所述插件模板进行配置,生成第二插件;
判断所述第二插件中的所述第一事件是否异步加载完成;
若确定所述第二插件中的所述第一事件未异步加载完成,将未异步加载完成的所述第一事件对应的第一事件调用函数存储至所述第一事件队列中;
在确定所述第一事件队列中的第一事件异步加载完成后,调用所述第二插件依次执行所述第一事件队列中的第一事件。
2.根据权利要求1所述的方法,其特征在于,所述若确定所述第二插件中的所述第一事件未异步加载完成,将未异步加载完成的所述第一事件对应的第一事件调用函数存储至所述第一事件队列中,包括:
若确定所述第二插件中的所述第一事件未异步加载完成,创建与未异步加载完成的所述第一事件对应的第一事件调用函数,并将所述第一事件调用函数存储至所述第一事件队列中。
3.根据权利要求2所述的方法,其特征在于,所述在确定所述第一事件队列中的第一事件异步加载完成后,调用所述第二插件依次执行所述第一事件队列中的第一事件,包括:
在确定所述第一事件队列中的所述第一事件异步加载完成后,调用所述第二插件依次执行所述第一事件队列中的所述第一事件对应的第一事件调用函数。
4.根据权利要求1所述的方法,其特征在于,所述方法还包括:若确定所述第二插件中的所述第一事件异步加载完成,调用所述第二插件依次执行所述第一事件。
5.根据权利要求2所述的方法,其特征在于,所述若确定所述第二插件中的所述第一事件未异步加载完成,创建与未异步加载完成的所述第一事件对应的第一事件调用函数,并将所述第一事件调用函数存储至所述第一事件队列中之后,所述方法还包括:
所述第二插件依次执行所述第一事件队列中的所述第一事件对应的所述第一事件调用函数,获得执行返回结果;
根据所述执行返回结果,确定所述第一事件队列中的所述第一事件是否异步加载完成。
6.根据权利要求1所述的方法,其特征在于,若确定未异步加载完成的所述第二插件中的所述第一事件包括多个,将未异步加载完成的多个所述第一事件分别存储至不同的所述第一事件队列中。
7.一种插件调用装置,其特征在于,所述装置包括:
构建模块,用于构建第一事件队列和插件模板;
生成模块,用于基于第一插件中的第一事件包括的数据处理方法对所述插件模板进行配置,生成第二插件;
判断模块,用于判断所述第二插件中的所述第一事件是否异步加载完成;
存储模块,用于若确定所述第二插件中的所述第一事件未异步加载完成,将未异步加载完成的所述第一事件对应的第一事件调用函数存储至所述第一事件队列中;
调用模块,用于在确定所述第一事件队列中的第一事件异步加载完成后,调用所述第二插件依次执行所述第一事件队列中的第一事件。
8.一种电子设备,其特征在于,包括:处理器、通信接口、存储器和通信总线,所述处理器、所述存储器和所述通信接口通过所述通信总线完成相互间的通信;
所述存储器用于存放至少一可执行指令,所述可执行指令使所述处理器执行如权利要求1-6中任一项所述的插件调用方法对应的操作。
9.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机指令,所述计算机指令在被处理器执行时,使所述处理器执行权利要求1-6中任一项所述的插件调用方法。
10.一种计算机程序产品,其特征在于,包括计算机程序,其中,所述计算机程序在被处理器执行时实现权利要求1-6中任一项所述的插件调用方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210596399.9A CN114968407B (zh) | 2022-05-30 | 2022-05-30 | 插件调用方法、装置、电子设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210596399.9A CN114968407B (zh) | 2022-05-30 | 2022-05-30 | 插件调用方法、装置、电子设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114968407A true CN114968407A (zh) | 2022-08-30 |
CN114968407B CN114968407B (zh) | 2024-03-08 |
Family
ID=82957648
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210596399.9A Active CN114968407B (zh) | 2022-05-30 | 2022-05-30 | 插件调用方法、装置、电子设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114968407B (zh) |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103645901A (zh) * | 2013-12-16 | 2014-03-19 | 上海证券交易所 | 一种基于事件链的用户界面插件化交互方法 |
CN109213948A (zh) * | 2018-10-18 | 2019-01-15 | 网宿科技股份有限公司 | 网页加载方法、中间服务器和网页加载系统 |
CN110941459A (zh) * | 2019-11-20 | 2020-03-31 | 东软集团股份有限公司 | 调用Replugin插件的方法及装置 |
CN111158686A (zh) * | 2019-12-31 | 2020-05-15 | 京东数字科技控股有限公司 | 网页弹框生成方法及装置、电子设备、存储介质 |
CN112214287A (zh) * | 2019-07-12 | 2021-01-12 | 腾讯科技(深圳)有限公司 | 应用软件的业务控制方法及装置、电子设备 |
CN113886741A (zh) * | 2021-10-21 | 2022-01-04 | 网易有道信息技术(北京)有限公司 | 用于对公式进行排版的方法及其相关产品 |
CN114371888A (zh) * | 2022-01-14 | 2022-04-19 | 中国电信股份有限公司 | 日志采集插件的热更新方法、装置、电子设备和可读介质 |
CN114490126A (zh) * | 2022-01-19 | 2022-05-13 | 北京百度网讯科技有限公司 | 页面处理方法、装置、电子设备和存储介质 |
-
2022
- 2022-05-30 CN CN202210596399.9A patent/CN114968407B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103645901A (zh) * | 2013-12-16 | 2014-03-19 | 上海证券交易所 | 一种基于事件链的用户界面插件化交互方法 |
CN109213948A (zh) * | 2018-10-18 | 2019-01-15 | 网宿科技股份有限公司 | 网页加载方法、中间服务器和网页加载系统 |
CN112214287A (zh) * | 2019-07-12 | 2021-01-12 | 腾讯科技(深圳)有限公司 | 应用软件的业务控制方法及装置、电子设备 |
CN110941459A (zh) * | 2019-11-20 | 2020-03-31 | 东软集团股份有限公司 | 调用Replugin插件的方法及装置 |
CN111158686A (zh) * | 2019-12-31 | 2020-05-15 | 京东数字科技控股有限公司 | 网页弹框生成方法及装置、电子设备、存储介质 |
CN113886741A (zh) * | 2021-10-21 | 2022-01-04 | 网易有道信息技术(北京)有限公司 | 用于对公式进行排版的方法及其相关产品 |
CN114371888A (zh) * | 2022-01-14 | 2022-04-19 | 中国电信股份有限公司 | 日志采集插件的热更新方法、装置、电子设备和可读介质 |
CN114490126A (zh) * | 2022-01-19 | 2022-05-13 | 北京百度网讯科技有限公司 | 页面处理方法、装置、电子设备和存储介质 |
Non-Patent Citations (15)
Title |
---|
ALLAN FERNANDO ARRIAGA: "JavaScript Web Applications: Building web applications using Asynchronous Module Definition", AF ARRIAGA GIRON, pages 1 - 52 * |
BENJAMIN SCHLEINZER 等: "From Agents and Plugins to Plugin-Agents, Concepts for Flexible Architectures", 2008 NEW TECHNOLOGIES, MOBILITY AND SECURITY, pages 1 - 5 * |
ESUS CHACON等: "Enhancing EJsS with Extension Plugins", JOURNALS ELECTRONICS, vol. 10, no. 3, pages 242 - 242 * |
I GAVRAN 等: "Rely/guarantee reasoning for asynchronous programs", 26TH INTERNATIONAL CONFERENCE ON CONCURRENCY THEORY (CONCUR 2015), pages 39 - 53 * |
RENOTE MICELI: "AutoTune: A Plugin-Driven Approach to the Automatic Tuning of Parallel Applications", INTERNATIONAL WORKSHOP ON APPLIED PARALLEL COMPUTING, pages 328 * |
ROBERT SCHÖNE 等: "Extending the Functionality of Score-P Through Plugins: Interfaces and Use Cases", TOOLS FOR HIGH PERFORMANCE COMPUTING, pages 59 - 82 * |
WENZEL: "Asynchronous Proof Processing with Isabelle/Scala and Isabelle/jEdit", ELECTRONIC NOTES IN THEORETICAL COMPUTER SCIENCE, vol. 285, no. 19, pages 101 - 114, XP028491936, DOI: 10.1016/j.entcs.2012.06.009 * |
史橹 等: "avaScript 代码分析技术综述", 计算机应用与软件, vol. 35, no. 11, pages 16 - 32 * |
大米☋: "springboot异常处理、异步执行&整合第三方插件", pages 1 - 3, Retrieved from the Internet <URL:https://blog.csdn.net/qq_57404736/article/details/124216987> * |
沈洪洲: "一种基于Chrome拓展程序的网络数据采集方法", 计算机应用与技术, vol. 33, no. 7, pages 10 - 14 * |
王向前: "基于插件的应用集成框架研究", 科技信息, no. 004, pages 154 - 154 * |
田玉泰: "基于Python的Abaqus前、后处理GUI插件二次开发与应用", 计算机辅助工程, vol. 31, no. 2, pages 63 - 68 * |
知乎用户K9EMBM: "vue项目中如何异步使用插件", pages 1 - 4, Retrieved from the Internet <URL:https://zhuanlan.zhihu.com/p/36798900> * |
邓文亮: "高兼容性 WebOffice 插件的研究与实现", 电脑与信息技术, vol. 25, no. 6, pages 12 - 15 * |
陈霄等: "采用构件组装技术协同开发Web 应用的方法", 计算机科学与探索, vol. 7, no. 2, pages 114 - 125 * |
Also Published As
Publication number | Publication date |
---|---|
CN114968407B (zh) | 2024-03-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111428462B (zh) | 通讯协议模板构建的方法及终端设备 | |
CN107241315B (zh) | 银行网关接口的接入方法、装置及计算机可读存储介质 | |
CN111290742A (zh) | 参数验证方法、装置、电子设备及可读存储介质 | |
CN112306881A (zh) | 模拟数据生成方法、装置、设备及存储介质 | |
CN109885612B (zh) | 区块链智能合约的同步生效方法及装置 | |
CN113806037A (zh) | 服务的调用方法、装置、存储介质及电子设备 | |
CN111651140B (zh) | 基于工作流的服务方法及装置 | |
CN111078573A (zh) | 一种测试报文的生成方法及装置 | |
CN114610598A (zh) | 测试方法、装置、电子设备及计算机可读存储介质 | |
CN111507676A (zh) | 业务订单流程创建和实现方法、装置、存储介质和系统 | |
CN109669678A (zh) | 模板引擎整合方法、装置、电子设备及存储介质 | |
CN116450165A (zh) | 一种快速搭建环境及部署程序的方法、系统、终端及存储介质 | |
CN114968407B (zh) | 插件调用方法、装置、电子设备及存储介质 | |
CN111414154A (zh) | 前端开发的方法、装置、电子设备和存储介质 | |
CN115904317A (zh) | 一种前后端接口统一调用方法、装置、设备及存储介质 | |
CN115757084A (zh) | 测试方法和测试装置及存储介质 | |
CN110989985B (zh) | 基于Maven的依赖包的管理方法、装置、计算机设备及存储介质 | |
CN114139479A (zh) | 仿真验证方法、装置及计算设备 | |
CN111597020A (zh) | 一种应用程序编程接口api调试方法以及调试终端 | |
CN110716972A (zh) | 高频率调用外部接口出错的处理方法和装置 | |
CN114356610A (zh) | 接口调用的控制方法、装置、设备及存储介质 | |
CN114499729B (zh) | 虚拟机时间同步方法、设备及存储介质 | |
CN112953806B (zh) | 业务类型及安装路径确定方法、装置和系统、存储介质 | |
CN114389948B (zh) | 基于白名单的功能升级及验证方法、装置、设备及介质 | |
CN115220822A (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 |