CN104572194B - 一种模块加载方法和装置 - Google Patents
一种模块加载方法和装置 Download PDFInfo
- Publication number
- CN104572194B CN104572194B CN201410850982.3A CN201410850982A CN104572194B CN 104572194 B CN104572194 B CN 104572194B CN 201410850982 A CN201410850982 A CN 201410850982A CN 104572194 B CN104572194 B CN 104572194B
- Authority
- CN
- China
- Prior art keywords
- module
- compiling
- file
- script
- unit
- 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
Links
Landscapes
- Devices For Executing Special Programs (AREA)
- Stored Programmes (AREA)
Abstract
本发明实施例提供了一种模块加载方法及装置。该模块加载方法包括:接收对第一文件的执行请求;对于所述第一文件的脚本中所包含的第一模块,在预设缓存中查找是否存在编译后的所述第一模块;以及若存在,则在所述第一文件的执行内存中加载所述编译后的第一模块。本发明实施例通过对文件脚本中的模块进行预存储,使得在执行文件脚本时,无需对脚本中包含的模块进行编译,直接将预存储的模块加载在对应的执行内存中即可,从而大大提高了文件执行效率,节省了编译模块所占用的资源。
Description
技术领域
本发明涉及数据处理技术领域,特别是涉及一种模块加载方法和一种模块加载装置。
背景技术
动态网页是跟静态网页相对的一种网页编程技术。静态网页,随着html代码的生成,页面的内容和显示效果就基本上不会发生变化了——除非修改页面代码。而动态网页则不然,页面代码虽然没有变,但是显示的内容却是可以随着时间、环境或者数据库操作的结果而发生改变的。
现有技术中,在接收到执行某一动态网页文件的请求时,需要运行该文件的脚本,对该脚本中的模块进行编译,然后加载并运行编译后的模块,尤其在lua-nginx-module关闭代码缓存的场景中,即使每次请求执行的文件脚本中包含相同的模块,也均需要在每次执行文件脚本时,对其中包含的所有模块进行重新编译。显然,这种在每次运行时需要对所有模块重新编译的方式,文件执行效率较低,而且会浪费资源。
因此,本领域亟需一种新的脚本运行方法,以提高文件执行效率,节省编译模块占用的资源。
发明内容
鉴于上述技术问题,本发明的实施例提出了一种模块加载方法和装置,以便克服上述问题或者至少部分地解决上述问题。
本发明的实施例公开了一种模块加载方法,所述包括:
接收对第一文件的执行请求;
对于所述第一文件的脚本中所包含的第一模块,在预设缓存中查找是否存在编译后的所述第一模块;以及
若存在,则在所述第一文件的执行内存中加载所述编译后的第一模块。
进一步,在对于所述第一文件的脚本中所包含的第一模块,在预设缓存中查找是否存在编译后的所述第一模块之前,所述方法进一步包括:
接收对第二文件的执行请求;
对所述第二文件的脚本中所包含的所述第一模块进行编译;以及
将编译后的所述第一模块存储在所述预设缓存中。
进一步,在所述对于所述第一文件的脚本中所包含的第一模块,在预设缓存中查找是否存在编译后的所述第一模块之前,所述方法进一步包括:
查找所述第一文件的执行内存中是否存在所述编译后的第一模块,若不存在,再在预设缓存中查找是否存在所述编译后的第一模块。
进一步,在所述预设缓存中所述编译后的第一模块以哈希表的形式进行存储。
进一步,所述编译后的第一模块为LUA模块或Python模块。
本发明的实施例还公开了一种模块加载装置,所述装置包括:
第一请求接收单元,用于接收对第一文件的执行请求;
缓存单元,用于缓存模块;
查找单元,用于对于所述第一文件的脚本中所包含的第一模块,在所述缓存单元中查找是否存在编译后的所述第一模块;以及,
加载单元,用于在所述查找单元查找到所述编译后的第一模块时,在所述第一文件的执行内存中加载所述编译后的第一模块。
进一步,所述装置进一步包括:
第二请求接收单元,用于在所述查找单元查找是否存在所述编译后的第一模块之前,接收对第二文件的执行请求;
创建单元,用于对所述第二文件的脚本中所包含的所述第一模块进行编译;以及
存储单元,用于将编译后的所述第一模块存储在所述缓存单元中。
进一步,所述查找单元,还用于在所述缓存单元中查找是否存在所述编译后的第一模块之前,查找所述第一文件的执行内存中是否存在所述编译后的第一模块,若不存在,再在所述缓存单元中查找是否存在所述编译后的第一模块。
进一步,在所述缓存单元中所述编译后的第一模块以哈希表的形式进行存储。
进一步,所述编译后的第一模块为LUA模块或Python模块。
与现有技术相比,本发明实施例至少包括以下优点:
本发明实施例通过对文件脚本中的模块进行编译后再预存储,使得在执行文件脚本时,无需重复对脚本中包含的模块进行编译,直接将预存储的模块加载在对应的执行内存中,或直接运行执行内存中的模块即可,从而大大提高了文件执行效率,节省了编译模块所占用的资源。
附图说明
图1是本发明的一种模块加载方法实施例的步骤流程示意图;
图2是本发明实施例中获得预设缓存中的模块的方法流程示意图;
图3是本发明的另一种模块加载方法实施例的步骤流程示意图;
图4是本发明的一种模块加载装置实施例的结构示意图;
图5是本发明的另一种模块加载装置实施例的结构示意图。
具体实施方式
为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本发明作进一步详细的说明。
参照图1,示出了本发明的一种模块加载方法实施例的步骤流程图,具体可以包括如下步骤:
步骤101,接收对第一文件的执行请求。
模块加载装置在接收到对第一文件的执行请求后,运行该第一文件的脚本,该脚本中可能包含有多个模块,对于该脚本中包含的第一模块,该装置执行步骤102。其中,该第一文件可以为动态网页文件,第一模块可以是脚本中包含的任一模块。
步骤102,对于第一文件的脚本中所包含的第一模块,在预设缓存中查找是否存在编译后的第一模块。
该装置对于脚本中包含的第一模块不是直接进行编译,而是执行本步骤,在预设的缓存中查找是否存在该编译后的第一模块。
其中,该预设缓存是与执行内存分开的独立的存储空间,该预设缓存中预先存储有多个编译后的模块,这些模块可以是根据需要预先自主编译后存储在该预设缓存中的,也可以是在接收到执行请求后,将根据该请求第一次编译的模块存储在该预设缓存中的。该预设缓存中的模块的获得方法有多种,此处仅为举例。该预设缓存中的模块为初始化的模块。
若本步骤中可以在预设缓存中查找到该编译后的第一模块,则无需对该第一模块进行编译,直接执行步骤103。若在该预设缓存中没有查找到该编译后的第一模块,则可以对该第一模块进行编译,然后将编译后的该模块存储在该预设缓存中,以便于后续需要该模块时可以直接在预设缓存中查找到,无需再重复编译。
步骤103,在第一文件的执行内存中加载该编译后的第一模块。
若上步骤中,该装置查找到该编译后的第一模块,则在本步骤中,该装置即可直接在该第一文件的执行内存中加载该第一模块,然后赋值运行该第一模块。
本发明实施例通过对文件脚本中的模块进行预存储,使得在执行文件脚本时,无需对脚本中包含的模块进行编译,直接将预存储的模块加载在对应的执行内存中即可,从而大大提高了文件执行效率,节省了编译模块所占用的资源。
在本发明的另一实施例中,该装置在执行步骤102之前,需要首先预设缓存,并在该缓存中存储编译后的模块,该在缓存中预存储编译后的模块的过程,如图2所示,可以包括如下步骤:
步骤201,接收对第二文件的执行请求。
该装置在接收到第二文件的执行请求后,执行该第二文件的脚本,该脚本中包含有第一模块。其中,该第二文件与第一文件可能相同,也可能不同。
步骤202,对第二文件的脚本中所包含的第一模块进行编译。
该装置按照现有方法对该第二文件的脚本中包含的第一模块进行编译,具体编译过程此处不再赘述。
步骤203,将编译后的第一模块存储在预设缓存中。
在编译完成该第一模块后,即可将编译后的该第一模块存储在预设缓存中。预设缓存中存储的编译后的各模块均可通过上述步骤获得。
预设缓存中的各模块均为初始化的模块,模块加载装置在加载预设缓存中的编译后的模块后,再对加载的编译后的模块进行赋值运行。预设缓存中的各编译后的模块均可以以哈希表的形式进行存储。
通过上述方式可以在预设缓存中的预先存储编译后的模块,从而可以在执行某一脚本时直接从预设缓存中获得对应的编译后的模块,而无需再重新编译模块。
参照图3,示出了本发明的另一种模块加载方法实施例的步骤流程图,具体可以包括如下步骤:
步骤301,接收对第一文件的执行请求。
该步骤与前述实施例中的步骤101类似,此处不再赘述。
步骤302,对于第一文件的脚本中所包含的第一模块,查找第一文件的执行内存中是否存在编译后的第一模块。
本实施例中,模块加载装置针对第一文件脚本中的第一模块既不是直接编译,也不是查找预设缓存中是否存在编译后的该第一模块,而是首先在该第一文件对应的执行内存中查找是否已经存在编译后的该第一模块,这样在执行内存中查找模块并调用模块的效率要比在预设缓存中查找模块并加载的效率更高。
若执行内存中存在该编译后的第一模块,则该装置可以直接调用该第一模块;若该执行内存中不存在该编译后的第一模块,则执行步骤303。
步骤303,在预设缓存中查找是否存在编译后的第一模块。
该步骤与前述实施例中的步骤102类似,此处不再赘述。若预设缓存中存在该编译后的第一模块,则执行步骤304,若不存在,则该装置编译该第一模块。
步骤304,在第一文件的执行内存中加载该编译后的第一模块。
本实施例通过先查找执行内存再查找预设缓存的步骤,更提高了文件执行效率。
上述各实施例中的第一模块可以是LUA模块或Python模块等。上述方法实施例均可以应用在lua-nginx-module关闭代码缓存的场景中。
需要说明的是,对于方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明实施例并不受所描述的动作顺序的限制,因为依据本发明实施例,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作并不一定是本发明实施例所必须的。
参照图4,示出了本发明一种模块加载装置实施例的结构示意图,具体可以包括如下单元:
第一请求接收单元401,用于接收对第一文件的执行请求。
缓存单元402,用于缓存模块。
查找单元403,用于对于所述第一文件的脚本中所包含的第一模块,在所述缓存单元402中查找是否存在编译后的所述第一模块。
加载单元404,用于在所述查找单元403查找到所述编译后的第一模块时,在所述第一文件的执行内存中加载所述编译后的第一模块。
其中,缓存单元402是与执行内存分开的独立的存储空间,该缓存单元402中预先存储有多个编译后的模块,这些模块可以是根据需要预先自主编译后存储在该缓存单元402中的,也可以是在接收到执行请求后,将根据该请求第一次编译的模块存储在该缓存单元402中的。该缓存单元402中的模块为初始化的模块。第一请求接收单元401在接收到对第一文件的执行请求后,对于第一文件的脚本中所包含的第一模块,由查找单元403在缓存单元402中查找编译后的第一模块,无需对该第一模块进行编译,查找单元403在查找到该编译后的第一模块后,即可由加载单元404在该第一文件的执行内存中加载该I编译后的第一模块。
本发明实施例中,该装置通过上述单元对文件脚本中的模块进行预存储,使得在执行文件脚本时,无需对脚本中包含的模块进行编译,直接将预存储的模块加载在对应的执行内存中即可,从而大大提高了文件执行效率,节省了编译模块所占用的资源。
在本发明的另一实施例中,该装置除了包括上述第一请求接收单元401,缓存单元402,查找单元403,加载单元404,之外,还可以包括:
第二请求接收单元501,用于在所述查找单元403查找是否存在所述编译后的第一模块之前,接收对第二文件的执行请求。
创建单元502,用于对所述第二文件的脚本中所包含的所述第一模块进行编译。
存储单元503,用于将编译后的所述第一模块存储在所述缓存单元402中。
在缓存单元402中所述编译后的第一模块以哈希表的形式进行存储。
通过上述第二请求接收单元501、创建单元502和存储单元503即可在缓存单元402中预先存储编译后的模块,从而可以在执行某一脚本时直接从预设缓存中获得对应的模块,而无需再重新编译模块。
在本发明的另一实施例中,该查找单元403,还可以用于在所述缓存单元402中查找是否存在所述编译后的第一模块之前,查找所述第一文件的执行内存中是否存在所述编译后的第一模块,若不存在,再在所述缓存单元402中查找是否存在所述编译后的第一模块。若执行内存中存在该编译后的第一模块,则该装置可以直接调用该编译后的第一模块。
查找单元403通过首先在该第一文件对应的执行内存中查找是否已经存在该编译后的第一模块,这样在执行内存中查找模块并调用模块的效率要比在预设缓存中查找模块并加载的效率更高。
本发明实施例中,上述第一模块可以是LUA模块或Python模块等。上述装置实施例均可以应用在lua-nginx-module关闭代码缓存的场景中。
本发明实施例还提供了一种电子设备,该电子设备包括数据总线,存储器和处理器,其中,存储器中存储有一段运行程序代码,处理器通过数据总线获取存储器中的程序代码,并执行以下步骤:
接收对第一文件的执行请求;
对于所述第一文件的脚本中所包含的第一模块,在预设缓存中查找是否存在编译后的所述第一模块;以及
若存在,则在所述第一文件的执行内存中加载所述编译后的第一模块。
该电子设备通过对文件脚本中的模块的编译后的形式进行预存储,使得在执行文件脚本时,无需对脚本中包含的模块进行编译,直接将预存储的编译后的模块加载在对应的执行内存中即可,从而大大提高了文件执行效率,节省了编译模块所占用的资源。
对于装置实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。
本领域内的技术人员应明白,本发明实施例的实施例可提供为方法、装置、或计算机程序产品。因此,本发明实施例可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明实施例是参照根据本发明实施例的方法、终端设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理终端设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理终端设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理终端设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理终端设备上,使得在计算机或其他可编程终端设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程终端设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本发明实施例的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明实施例范围的所有变更和修改。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者终端设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者终端设备所固有的要素。在没有更多限制的情况下,由语句“包括一个......”限定的要素,并不排除在包括所述要素的过程、方法、物品或者终端设备中还存在另外的相同要素。
以上对本发明所提供的一种模块加载方法和一种模块加载装置,进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
Claims (8)
1.一种模块加载方法,其特征在于,包括:
接收对第一文件的执行请求;
对于所述第一文件的脚本中所包含的第一模块,在预设缓存中查找是否存在编译后的所述第一模块,其中在所述预设缓存中所述编译后的第一模块以哈希表的形式进行存储,所述第一模块是脚本包含的任一模块,所述预设缓存是与执行内存分开的独立存储空间;以及
若存在,则在所述第一文件的执行内存中加载所述编译后的第一模块。
2.根据权利要求1所述的方法,其特征在于,在对于所述第一文件的脚本中所包含的第一模块,在预设缓存中查找是否存在编译后的所述第一模块之前,所述方法进一步包括:
接收对第二文件的执行请求;
对所述第二文件的脚本中所包含的所述第一模块进行编译;以及
将编译后的所述第一模块存储在所述预设缓存中。
3.根据权利要求1所述的方法,其特征在于,在所述对于所述第一文件的脚本中所包含的第一模块,在预设缓存中查找是否存在编译后的所述第一模块之前,所述方法进一步包括:
查找所述第一文件的执行内存中是否存在所述编译后的第一模块,若不存在,再在预设缓存中查找是否存在所述编译后的第一模块。
4.根据权利要求1至3中任意一项所述的方法,其特征在于,所述编译后的第一模块为LUA模块或Python模块。
5.一种模块加载装置,其特征在于,所述装置包括:
第一请求接收单元,用于接收对第一文件的执行请求;
缓存单元,用于缓存模块;
查找单元,用于对于所述第一文件的脚本中所包含的第一模块,在所述缓存单元中查找是否存在编译后的所述第一模块,其中在所述缓存单元中所述编译后的第一模块以哈希表的形式进行存储,所述第一模块是脚本包含的任一模块,所述缓存是与执行内存分开的独立存储空间;以及,
加载单元,用于在所述查找单元查找到所述编译后的第一模块时,在所述第一文件的执行内存中加载所述编译后的第一模块。
6.根据权利要求5所述的装置,其特征在于,所述装置进一步包括:
第二请求接收单元,用于在所述查找单元查找是否存在所述编译后的第一模块之前,接收对第二文件的执行请求;
创建单元,用于对所述第二文件的脚本中所包含的所述第一模块进行编译;以及
存储单元,用于将编译后的所述第一模块存储在所述缓存单元中。
7.根据权利要求5所述的装置,其特征在于,
所述查找单元,还用于在所述缓存单元中查找是否存在所述编译后的第一模块之前,查找所述第一文件的执行内存中是否存在所述编译后的第一模块,若不存在,再在所述缓存单元中查找是否存在所述编译后的第一模块。
8.根据权利要求5至7中任意一项所述的装置,其特征在于,所述编译后的第一模块为LUA模块或Python模块。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410850982.3A CN104572194B (zh) | 2014-12-30 | 2014-12-30 | 一种模块加载方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410850982.3A CN104572194B (zh) | 2014-12-30 | 2014-12-30 | 一种模块加载方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104572194A CN104572194A (zh) | 2015-04-29 |
CN104572194B true CN104572194B (zh) | 2019-03-08 |
Family
ID=53088352
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410850982.3A Active CN104572194B (zh) | 2014-12-30 | 2014-12-30 | 一种模块加载方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104572194B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107291439B (zh) * | 2016-04-13 | 2020-06-16 | 阿里巴巴集团控股有限公司 | 一种目标增量数据构建方法及装置 |
CN110874211A (zh) * | 2018-09-04 | 2020-03-10 | 北京奇虎科技有限公司 | 一种php文件访问方法及装置 |
CN111176654B (zh) * | 2019-11-18 | 2021-04-27 | 浙江大学 | 一种基于多用户缓存的物联网应用在线编译方法 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101075241A (zh) * | 2006-12-26 | 2007-11-21 | 腾讯科技(深圳)有限公司 | 缓存处理方法以及缓存处理系统 |
CN102207949A (zh) * | 2010-07-15 | 2011-10-05 | 优视科技有限公司 | 用于移动通讯设备终端的浏览器脚本解析方法及其装置 |
CN103064720A (zh) * | 2011-09-09 | 2013-04-24 | 微软公司 | 简档导向的jit代码生成 |
CN103544276A (zh) * | 2013-10-22 | 2014-01-29 | 北京京东尚科信息技术有限公司 | 一种采用虚拟机显示脚本文件的方法及装置 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101697135B (zh) * | 2009-10-28 | 2012-06-27 | 东方网力科技股份有限公司 | 一种编译程序的方法及装置 |
-
2014
- 2014-12-30 CN CN201410850982.3A patent/CN104572194B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101075241A (zh) * | 2006-12-26 | 2007-11-21 | 腾讯科技(深圳)有限公司 | 缓存处理方法以及缓存处理系统 |
CN102207949A (zh) * | 2010-07-15 | 2011-10-05 | 优视科技有限公司 | 用于移动通讯设备终端的浏览器脚本解析方法及其装置 |
CN103064720A (zh) * | 2011-09-09 | 2013-04-24 | 微软公司 | 简档导向的jit代码生成 |
CN103544276A (zh) * | 2013-10-22 | 2014-01-29 | 北京京东尚科信息技术有限公司 | 一种采用虚拟机显示脚本文件的方法及装置 |
Non-Patent Citations (1)
Title |
---|
5.7.2InnoDB存储引擎中的哈希算法;姜承尧;《MySQL技术内幕 InnoDB存储引擎》;20110131;第201-202页 |
Also Published As
Publication number | Publication date |
---|---|
CN104572194A (zh) | 2015-04-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108228147B (zh) | 一种性能数据日志获取方法及装置 | |
TWI640923B (zh) | Application processing method and device | |
KR20180077265A (ko) | 플러그인화 패키징 방법, 장치, 터미널 및 저장 매체 | |
CN104915224A (zh) | 一种关联应用程序的处理方法及装置 | |
CN105630543A (zh) | 一种应用冷启动加速的方法及装置 | |
JP6412276B2 (ja) | 仮想マシン作成方法及び装置 | |
CN110895471A (zh) | 安装包生成方法、装置、介质及电子设备 | |
CN104572194B (zh) | 一种模块加载方法和装置 | |
CN104731622B (zh) | 一种应用程序的加载方法、装置和移动终端 | |
CN107479868B (zh) | 一种界面加载方法、装置及设备 | |
CN109344619A (zh) | 应用程序的热修复方法和装置 | |
CN104580267A (zh) | 一种资源下载方法、装置、服务器和相应的系统 | |
CN111427579A (zh) | 插件、应用程序实现方法及系统和计算机系统及存储介质 | |
CN104050001A (zh) | 基于Android系统的资源处理方法、装置和设备 | |
CN112214250B (zh) | 一种应用程序组件的加载方法和装置 | |
CN103488517A (zh) | Php代码编译方法、php代码运行方法及装置 | |
AU2016378425B2 (en) | Application program running method and apparatus | |
CN106293790B (zh) | 基于Firefox操作系统的应用程序升级方法和装置 | |
CN105975329A (zh) | 一种虚拟机的创建方法和装置 | |
CN105373384B (zh) | 一种软件开发方法和装置 | |
CN104317819A (zh) | 基于浏览器页面间跨域通信的方法和系统 | |
US9606775B2 (en) | Developing rich internet application | |
CN109144601A (zh) | 在ios应用内调用函数的方法及系统 | |
CN108595262B (zh) | 数据处理方法及装置 | |
CN103473089A (zh) | 一种分布式java程序运行方法、装置和系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
TR01 | Transfer of patent right |
Effective date of registration: 20220721 Address after: Room 801, 8th floor, No. 104, floors 1-19, building 2, yard 6, Jiuxianqiao Road, Chaoyang District, Beijing 100015 Patentee after: BEIJING QIHOO TECHNOLOGY Co.,Ltd. Address before: Room 112, block D, No. 28, Xinjiekou outer street, Xicheng District, Beijing 100088 (Desheng Park) Patentee before: BEIJING QIHOO TECHNOLOGY Co.,Ltd. Patentee before: Qizhi software (Beijing) Co.,Ltd. |
|
TR01 | Transfer of patent right |