CN107329785A - 一种动态加载JavaScript模块的方法及系统 - Google Patents

一种动态加载JavaScript模块的方法及系统 Download PDF

Info

Publication number
CN107329785A
CN107329785A CN201710500521.7A CN201710500521A CN107329785A CN 107329785 A CN107329785 A CN 107329785A CN 201710500521 A CN201710500521 A CN 201710500521A CN 107329785 A CN107329785 A CN 107329785A
Authority
CN
China
Prior art keywords
submodule
dependence
loading
javascript modules
javascript
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
Application number
CN201710500521.7A
Other languages
English (en)
Inventor
谢鹏
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Zhengzhou Yunhai Information Technology Co Ltd
Original Assignee
Zhengzhou Yunhai Information Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Zhengzhou Yunhai Information Technology Co Ltd filed Critical Zhengzhou Yunhai Information Technology Co Ltd
Priority to CN201710500521.7A priority Critical patent/CN107329785A/zh
Publication of CN107329785A publication Critical patent/CN107329785A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44521Dynamic linking or loading; Link editing at or after load time, e.g. Java class loading
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44568Immediately runnable code
    • G06F9/44578Preparing or optimising for loading

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

本申请公开了一种存储管理软件动态加载JavaScript模块的方法,所述方法包括:接收动态加载资源的命令,根据所述请求信息,加载相应的所述JavaScript模块,并绑定完成事件,判断所述JavaScript模块是否存在依赖子模块,如果是,则加载所述依赖子模块,并在所述依赖子模块上绑定所述完成事件,当所述JavaScript模块及所述依赖子模块加载完成,触发所述完成事件;本方法在加快了JavaScript模块加载速度同时也保证了渲染时页面全部加载完成,提升了用户体验效果;本申请还公开了一种存储管理软件动态加载JavaScript模块的系统,具有以上有益效果。

Description

一种动态加载JavaScript模块的方法及系统
技术领域
本发明涉及存储管理领域,特别涉及一种存储管理软件动态加载JavaScript模块的方法及系统。
背景技术
存储管理软件可以方便用户使用并提高存储器利用率,在存储管理软件中,需要支持页面各模块的静态内容提取拼接功能,也就是说,一个页面由各个模块按需组合而成,一个请求进来,管理软件会并发地处理这些模块,最后再组合成一个完整的页面返回给客户。但是,如果将页面分为多个模块,模块过多会带来阻碍页面渲染的问题。
为了解决上述问题,在现有技术中,浏览器支持JavaScript并行下载,也就是说对所有模块进行下载,但是由于浏览器不能保证下载的执行顺序,会导致加载完成的模块准备执行时,部分依赖模块还没有下载完成,进而造成在页面渲染时页面加载不全甚至是加载不出的问题。
因此,如何加快JavaScript模块加载速度且保证渲染时页面全部加载完成,是本领域技术人员目前需要解决的技术问题。
发明内容
本申请的目的是提供一种存储管理软件动态加载JavaScript模块的方法及系统,加快JavaScript模块加载速度且保证渲染时页面全部加载完成。
为解决上述技术问题,本申请提供一种存储管理软件动态加载JavaScript模块的方法及系统,该方法包括:
接收动态加载资源的命令,其中,所述命令中携带有用户的请求信息;
根据所述请求信息,加载相应的所述JavaScript模块,并绑定完成事件,其中,所述完成事件用于通知加载所述JavaScript模块已完成;
判断所述JavaScript模块是否存在依赖子模块,如果是,则加载所述依赖子模块,并在所述依赖子模块上绑定所述完成事件;
当所述JavaScript模块及所述依赖子模块加载完成,触发所述完成事件。
可选的,加载相应的所述JavaScript模块包括:
通过use方法判断缓存中是否存有所述JavaScript模块;
若存在,则从所述缓存中获取所述JavaScript模块;
若不存在,则创建、加载所述JavaScript模块。
可选的,创建、加载所述JavaScript模块包括:
以所述JavaScript模块的地址作为ID创建所述JavaScript模块对应的代码;
通过创建script标签的方式异步加载所述代码。
可选的,加载所述依赖子模块,并在所述依赖子模块上绑定所述完成事件包括:
加载第一依赖等级子模块,并判断所述第一依赖等级子模块是否依赖更高依赖级别的依赖子模块;
如果是,则加载更高依赖级别的依赖子模块,并在所述更高依赖级别的依赖子模块上绑定所述完成事件,其中,所述第一依赖等级子模块为依赖等级最低的依赖子模块。
可选的,当所述JavaScript模块及所述依赖子模块加载完成,触发所述完成事件包括:
当依赖等级最高的依赖子模块加载完成,按依赖等级从高到低的顺序依次触发各依赖子模块和所述JavaScript模块绑定的所述完成事件。
本申请还提供了一种存储管理软件动态加载JavaScript模块的系统,所述系统包括:
接收模块,用于接收动态加载资源的命令,其中,所述命令中携带有用户的请求信息;
加载模块,用于根据所述请求信息,加载相应的所述JavaScript模块,并绑定完成事件,其中,所述完成事件用于通知加载所述JavaScript模块已完成;
判断模块,用于判断所述JavaScript模块是否存在依赖子模块,如果是,则加载所述依赖子模块,并在所述依赖子模块上绑定所述完成事件;
反馈模块,用于当所述JavaScript模块及所述依赖子模块加载完成,触发所述完成事件。
可选的,加载模块包括:
入口加载单元,用于通过use方法加载所述JavaScript模块的入口模块;
缓存检测单元,用于通过所述use方法判断缓存中是否存有所述JavaScript模块;
若存在,则从所述缓存中获取所述JavaScript模块;
若不存在,则创建、加载所述JavaScript模块。
可选的,所述缓存检测单元包括:
ID创建子单元,用于以所述JavaScript模块的地址作为ID创建所述JavaScript模块对应的代码;
代码加载子单元,用于通过创建script标签的方式异步加载所述代码。
可选的,所述判断模块包括:
依赖判断单元,用于加载第一依赖等级子模块,并判断所述第一依赖等级子模块是否依赖更高依赖级别的依赖子模块;
加载单元,用于加载更高依赖级别的依赖子模块,并在所述更高依赖级别的依赖子模块上绑定所述完成事件,其中,所述第一依赖等级子模块为依赖等级最低的依赖子模块。
可选的,所述反馈模块具体为当依赖等级最高的依赖子模块加载完成,按依赖等级从高到低的顺序依次触发各依赖子模块和所述JavaScript模块绑定的所述完成事件的模块。
本发明提供了一种存储管理软件动态加载JavaScript模块的方法,接收动态加载资源的命令;根据所述请求信息,加载相应的所述JavaScript模块,并绑定完成事件,判断所述JavaScript模块是否存在依赖子模块,如果是,则加载所述依赖子模块,并在所述依赖子模块上绑定所述完成事件。当所述JavaScript模块及所述依赖子模块加载完成,触发所述完成事件。
本方法采用动态加载的方式实现对JavaScript模块的加载,根据用户发出的请求信息,有针对性地加载相关模块,不需要对全部模块进行加载,提高了加载速度。本方法在加载完JavaScript模块后,对JavaScript模块是否有依赖子模块进行判定,如果有则继续加载依赖子模块,并且只有将所有依赖子模块都加载完成后才可以触发JavaScript模块上绑定的完成事件,也就是说在渲染页面时JavaScript模块及其依赖子模块都加载完成,避免了JavaScript模块加载完成准备执行时依赖子模块还没有加载完成的状况,也就不会出现页面加载不全甚至是加载不出的问题。由上可知,本方法加快了JavaScript模块加载速度同时也保证了渲染时页面全部加载完成,提升了用户体验效果。本申请同时还提供了一种存储管理软件动态加载JavaScript模块的系统,具有上述有益效果,在此不再赘述。
附图说明
为了更清楚地说明本申请实施例,下面将对实施例中所需要使用的附图做简单的介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例所提供的一种存储管理软件动态加载JavaScript模块的方法所处的硬件环境示意图;
图2为本申请实施例所提供的一种存储管理软件动态加载JavaScript模块的方法的流程图;
图3为本申请实施例所提供的另一种存储管理软件动态加载JavaScript模块的方法的流程图;
图4为本申请在实际应用中的实施例所提供的一种存储管理软件动态加载JavaScript模块的方法的流程图;
图5为图4所示实施例中加载依赖子模块的处理流程图;
图6本申请所提供的一种存储管理软件动态加载JavaScript模块的系统结构示意图;
图7为本申请实施例提供的另一种存储管理软件动态加载JavaScript模块的系统的结构示意图。
具体实施方式
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
本申请所提供的一种存储管理软件动态加载JavaScript模块的方法及系统,可以应用于以下硬件场景中:
请参考图1,图1为本申请中提供的一种存储管理软件动态加载JavaScript模块的方法所处于的硬件环境示意图,包括客户端101、存储管理装置102。
其中,客户端101是用户发出加载申请的终端装置,例如,安装有的各种浏览器的计算机、智能手机等,只要是能够向存储管理装置发出加载申请的装置即可,此处并不对客户端101做具体的限制。存储管理装置102,用来根据用户的加载申请,对所需要加载的模块进行加载,并将加载得到的模块进行渲染以呈现在客户端101上。存储管理装置102,可以下辖多个功能模块,例如,命令接收模块,用于接收客户端101发出的命令;渲染模块,用于将加载得到的模块进行渲染。
下面请参见图2,图2为本申请实施例所提供的一种存储管理软件动态加载JavaScript模块的方法的流程图。
具体步骤可以包括:
步骤S201:接收动态加载资源的命令,其中,所述命令中携带有用户的请求信息;
其中,动态加载资源的命令是由用户发出的,命令中携带有具体加载哪些模块的信息,加载的模块可以是一个也可以是多个,此处并不对请求信息中需要加载的模块的数量进行限定。
步骤S202:根据所述请求信息,加载相应的所述JavaScript模块,并绑定完成事件,其中,所述完成事件用于通知加载所述JavaScript模块已完成;
其中,本步骤加载用户所请求加载的模块,理论上对于用户没有请求加载的模块是否进行加载并无要求,但是在实际执行过程中,加载没有请求的模块不但没有任何好处,反而会增加整个流程的时间,造成浪费,降低用户的体验效果。优选的,在本步骤中只加载用户请求加载的模块,以呈现出最优的加载效果。
完成事件是绑定在JavaScript模块上的一个时间通知,如果此事件触发则代表整个加载JavaScript模块的流程结束,开始对加载完成的模块进行渲染。可以理解的是,绑定完成事件这一步骤发生在加载JavaScript模块过程的任意时间段,也就是说只要在加载JavaScript模块完成之前绑定即可,此处并不对绑定完成事件的时间点进行限定。当然,在同一时间点进行完成事件的绑定有利于流程的执行,如,在开始加载JavaScript模块的同一时间开始绑定完成事件。
步骤S203:判断所述JavaScript模块是否存在依赖子模块,如果是,则进入步骤S204;如果否,则进入步骤S205;
其中,虽然在用户发出的请求信息中只包含所要加载的JavaScript模块,但是还可能存在JavaScript模块依赖的模块没有加载,如果不加载JavaScript模块依赖的模块将会造成渲染页面时加载不全甚至是加载不出的问题,因此如果存在依赖子模块时,不但要加载JavaScript模块,还要加载依赖子模块。判断所述JavaScript模块是否存在依赖子模块这一步骤可以在开始加载
JavaScript模块后的任意时间进行,优选的,在加载完JavaScript模块后进行判断。
可以理解的是,依赖子模块的数目是不确定的,对依赖子模块的加载可以是串行,也可以是并行,此处并不对加载依赖子模块的方法进行限定。当然,依赖子模块的依赖等级也是不确定的,JavaScript模块的依赖子模块还有可能依赖其它的子模块,所以在加载依赖子模块完成后仍需要对依赖子模块是否依赖其他的子模块进行判定,如果存在则继续加载,并递归这个过程,如果不存在,则结束判定,触发完成事件。可以理解的是,对每一个加载的依赖子模块都需要绑定完成事件,具体过程与在JavaScript模块上绑定完成事件一致。
步骤S204:加载所述依赖子模块,并在所述依赖子模块上绑定所述完成事件。
步骤S205:当所述JavaScript模块及所述依赖子模块加载完成,触发所述完成事件;
其中,JavaScript模块及依赖子模块加载完成是指,与JavaScript模块有直接或间接依赖关系的子模块和JavaScript模块均加载完成。与JavaScript模块有直接依赖关系的子模块为第一依赖等级子模块,若第一依赖等级子模块还依赖其他子模块,那么第一依赖等级子模块所依赖的子模块为第二依赖等级子模块,并逐层递归,直至最高依赖等级子模块。
当最高依赖等级子模块加载完成后触发自身的完成事件,较高等级的依赖等级子模块上绑定的完成事件触发后会触发下一等级的依赖等级子模块上绑定的完成事件,直至触发JavaScript模块上绑定的完成事件。
下面请参见图3,图3为本申请实施例所提供的另一种存储管理软件动态加载JavaScript模块的方法的流程图。
此实施例是在上述实施例的基础上,通过use方法来加载JavaScript模块的入口模块并检查缓存中是否有JavaScript模块,并对创建、加载JavaScript模块的方法进行了相关限定。
具体步骤可以包括:
步骤S301:接收动态加载资源的命令,其中,所述命令中携带有用户的请求信息。
步骤S302:通过所述use方法判断缓存中是否存有所述JavaScript模块;
其中,JavaScript模块有可能已经在缓存中存在,如果在缓存中存在有所要加载的JavaScript模块可以直接从缓存中获取,省去了创建并加载JavaScript模块的流程。在加载JavaScript模块时首先要加载JavaScript模块的入口模块,可以采用use方法加载入口模块。在通过use方法加载入口模块时,会接收一个回调函数,当JavaScript模块加载完成后调用该回调函数,也就是说依赖等级最高的模块触发完成事件后use方法中的回调函数才会被调用,并传入对应的模块,以便执行渲染页面的操作。
步骤S303:若存在,则从所述缓存中获取所述JavaScript模块,并进入步骤S306;
其中,尽管可以从缓存中直接获取JavaScript模块,但是无法确定直接获取的JavaScript模块是否还依赖其他子模块,所以需要进入S306绑定完成事件,以便进行是否存在依赖子模块的判断。
步骤S304:若不存在,则以所述JavaScript模块的地址作为ID创建所述JavaScript模块对应的代码。
步骤S305:通过创建script标签的方式异步加载所述代码。
步骤S306:在所述JavaScript模块绑定完成事件。
步骤S307:判断所述JavaScript模块中是否存在第一依赖等级子模块,若是则进入S308,若否,则进入步骤S310。
步骤S308:加载第一依赖等级子模块,并判断所述第一依赖等级子模块是否依赖更高依赖级别的依赖子模块。
步骤S309:如果是,则加载更高依赖级别的依赖子模块,并在所述更高依赖级别的依赖子模块上绑定所述完成事件,其中,所述第一依赖等级子模块为依赖等级最低的依赖子模块;
其中,与JavaScript模块有直接依赖关系的子模块为第一依赖等级子模块,若第一依赖等级子模块还依赖其他子模块,那么第一依赖等级子模块所依赖的子模块为第二依赖等级子模块,并逐层递推,直至最高依赖等级子模块。
步骤S310:当依赖等级最高的依赖子模块加载完成,按依赖等级从高到低的顺序依次触发各依赖子模块和所述JavaScript模块绑定的所述完成事件。
此步骤与上面的步骤的S205内容大致一致,此处不再赘述。
请参阅图4、图5,图4为本申请在实际应用中的实施例所提供的一种存储管理软件动态加载JavaScript模块的方法的流程图,图5为本实施例中加载依赖子模块的处理流程图,在此实施例中JavaScript模块依赖A模块,A模块依赖B模块,B模块依赖C模块,C模块不依赖任何模块。
具体步骤可以包括:
步骤S401:接收动态加载资源的命令,其中,所述命令中携带有用户的请求信息。
步骤S402:以所述JavaScript模块的地址作为ID创建所述JavaScript模块对应的代码。
步骤S403:通过创建script标签的方式异步加载所述代码。
步骤S404:在所述JavaScript模块绑定完成事件。
步骤S405:JavaScript模块加载完成后,加载JavaScript模块依赖的子模块A,并在子模块A上绑定完成事件。
步骤S406:子模块A加载完成后,得知子模块A依赖于子模块B,加载子模块A依赖的子模块B,并在子模块B上绑定完成事件。
步骤S407:子模块B加载完成后,得知子模块B依赖于子模块C,加载子模块B依赖的子模块C,并在子模块C上绑定完成事件,其中子模块C不依赖任何模块。
步骤S408:子模块C加载完成后,依次触发子模块C、子模块B、子模块A和JavaScript模块上绑定的完成事件。
由于系统部分的实施例与方法部分的实施例相互对应,因此系统部分的实施例请参见方法部分的实施例的描述,这里暂不赘述。
下面请参见图6,图6为本申请所提供的一种存储管理软件动态加载JavaScript模块的系统结构示意图,该系统可以包括:
接收模块100,用于接收动态加载资源的命令,其中,所述命令中携带有用户的请求信息;
加载模块200,用于根据所述请求信息,加载相应的所述JavaScript模块,并绑定完成事件,其中,所述完成事件用于通知加载所述JavaScript模块已完成;
判断模块300,用于判断所述JavaScript模块是否存在依赖子模块,如果是,则加载所述依赖子模块,并在所述依赖子模块上绑定所述完成事件;
反馈模块400,用于当所述JavaScript模块及所述依赖子模块加载完成,触发所述完成事件。
请参阅图7,图7为本申请实施例提供的另一种存储管理软件动态加载JavaScript模块的系统的结构示意图。
在上述实施例的基础上,本实施例进一步的,所述加载模块200包括:
缓存检测单元210,用于通过所述use方法判断缓存中是否存有所述JavaScript模块;若存在,则从所述缓存中获取所述JavaScript模块;若不存在,则创建、加载所述JavaScript模块。
进一步的,所述缓存检测单元210包括:
ID创建子单元211,用于以所述JavaScript模块的地址作为ID创建所述JavaScript模块对应的代码;
代码加载子单元212,用于通过创建script标签的方式异步加载所述代码。
进一步的,所述判断模块300包括:
依赖判断单元301,用于加载第一依赖等级子模块,并判断所述第一依赖等级子模块是否依赖更高依赖级别的依赖子模块;
加载单元302,用于加载更高依赖级别的依赖子模块,并在所述更高依赖级别的依赖子模块上绑定所述完成事件,其中,所述第一依赖等级子模块为依赖等级最低的依赖子模块。
进一步的,所述反馈模块400具体为当依赖等级最高的依赖子模块加载完成,按依赖等级从高到低的顺序依次触发各依赖子模块和所述JavaScript模块绑定的所述完成事件的模块。
以上对本申请所提供的一种存储管理软件动态加载JavaScript模块的方法及系统进行了详细介绍。说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的系统而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请原理的前提下,还可以对本申请进行若干改进和修饰,这些改进和修饰也落入本申请权利要求的保护范围内。
还需要说明的是,在本说明书中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

Claims (10)

1.一种存储管理软件动态加载JavaScript模块的方法,其特征在于,所述方法包括:
接收动态加载资源的命令;其中,所述命令中携带有用户的请求信息;
根据所述请求信息,加载相应的所述JavaScript模块,并绑定完成事件;其中,所述完成事件用于通知加载所述JavaScript模块已完成;
判断所述JavaScript模块是否存在依赖子模块,如果是,则加载所述依赖子模块,并在所述依赖子模块上绑定所述完成事件;
当所述JavaScript模块及所述依赖子模块加载完成,触发所述完成事件。
2.根据权利要求1所述方法,其特征在于,所述加载相应的所述JavaScript模块包括:
通过use方法判断缓存中是否存有所述JavaScript模块;
若存在,则从所述缓存中获取所述JavaScript模块;
若不存在,则创建、加载所述JavaScript模块。
3.根据权利要求2所述方法,其特征在于,创建、加载所述JavaScript模块包括:
以所述JavaScript模块的地址作为ID创建所述JavaScript模块对应的代码;
通过创建script标签的方式异步加载所述代码。
4.根据权利要求3所述方法,其特征在于,加载所述依赖子模块,并在所述依赖子模块上绑定所述完成事件包括:
加载第一依赖等级子模块,并判断所述第一依赖等级子模块是否依赖更高依赖级别的依赖子模块;
如果是,则加载更高依赖级别的依赖子模块,并在所述更高依赖级别的依赖子模块上绑定所述完成事件,其中,所述第一依赖等级子模块为依赖等级最低的依赖子模块。
5.根据权利要求4所述方法,其特征在于,当所述JavaScript模块及所述依赖子模块加载完成,触发所述完成事件包括:
当依赖等级最高的依赖子模块加载完成,按依赖等级从高到低的顺序依次触发各依赖子模块和所述JavaScript模块绑定的所述完成事件。
6.一种存储管理软件动态加载JavaScript模块的系统,其特征在于,所述系统包括:
接收模块,用于接收动态加载资源的命令,其中,所述命令中携带有用户的请求信息;
加载模块,用于根据所述请求信息,加载相应的所述JavaScript模块,并绑定完成事件,其中,所述完成事件用于通知加载所述JavaScript模块已完成;
判断模块,用于判断所述JavaScript模块是否存在依赖子模块,如果是,则加载所述依赖子模块,并在所述依赖子模块上绑定所述完成事件;
反馈模块,用于当所述JavaScript模块及所述依赖子模块加载完成,触发所述完成事件。
7.根据权利要求6所述系统,其特征在于,所述加载模块包括:
缓存检测单元,用于通过use方法判断缓存中是否存有所述JavaScript模块;若存在,则从所述缓存中获取所述JavaScript模块;若不存在,则创建、加载所述JavaScript模块。
8.根据权利要求7所述系统,其特征在于,所述缓存检测单元包括:
ID创建子单元,用于以所述JavaScript模块的地址作为ID创建所述JavaScript模块对应的代码;
代码加载子单元,用于通过创建script标签的方式异步加载所述代码。
9.根据权利要求8所述系统,其特征在于,所述判断模块包括:
依赖判断单元,用于加载第一依赖等级子模块,并判断所述第一依赖等级子模块是否依赖更高依赖级别的依赖子模块;
加载单元,用于加载更高依赖级别的依赖子模块,并在所述更高依赖级别的依赖子模块上绑定所述完成事件,其中,所述第一依赖等级子模块为依赖等级最低的依赖子模块。
10.根据权利要求9所述系统,其特征在于,所述反馈模块具体为当依赖等级最高的依赖子模块加载完成,按依赖等级从高到低的顺序依次触发各依赖子模块和所述JavaScript模块绑定的所述完成事件的模块。
CN201710500521.7A 2017-06-27 2017-06-27 一种动态加载JavaScript模块的方法及系统 Pending CN107329785A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201710500521.7A CN107329785A (zh) 2017-06-27 2017-06-27 一种动态加载JavaScript模块的方法及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201710500521.7A CN107329785A (zh) 2017-06-27 2017-06-27 一种动态加载JavaScript模块的方法及系统

Publications (1)

Publication Number Publication Date
CN107329785A true CN107329785A (zh) 2017-11-07

Family

ID=60197074

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710500521.7A Pending CN107329785A (zh) 2017-06-27 2017-06-27 一种动态加载JavaScript模块的方法及系统

Country Status (1)

Country Link
CN (1) CN107329785A (zh)

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108170493A (zh) * 2017-12-27 2018-06-15 广州安食通信息科技有限公司 一种系统模块的加载方法、系统及装置
CN109343908A (zh) * 2018-10-19 2019-02-15 网宿科技股份有限公司 一种延迟加载js脚本的方法和装置
CN109445764A (zh) * 2018-10-30 2019-03-08 国网江苏省电力有限公司南通供电分公司 一种web页面动态加载方法
CN110874246A (zh) * 2018-08-28 2020-03-10 Tcl集团股份有限公司 一种模块加载方法、系统及设备
CN110989985A (zh) * 2019-11-29 2020-04-10 深圳前海环融联易信息科技服务有限公司 基于Maven的依赖包的管理方法、装置、计算机设备及存储介质
CN112948010A (zh) * 2019-11-25 2021-06-11 上海哔哩哔哩科技有限公司 JavaScript模块化HTML文件前端加载方法
CN113064662A (zh) * 2020-01-02 2021-07-02 北京沃东天骏信息技术有限公司 一种加载应用模块的方法、客户端和服务端
CN116775030A (zh) * 2023-08-24 2023-09-19 北京长亭科技有限公司 一种安全基线的创建方法和装置

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102799640A (zh) * 2012-06-27 2012-11-28 用友软件股份有限公司 页面加载装置和页面加载方法
CN103377059A (zh) * 2012-04-23 2013-10-30 阿里巴巴集团控股有限公司 基于jQuery框架的功能模块动态加载方法和装置
CN103440151A (zh) * 2013-09-05 2013-12-11 北京京东尚科信息技术有限公司 一种动态加载Web页面的方法和装置
CN104484383A (zh) * 2014-12-10 2015-04-01 北京国双科技有限公司 Js文件处理方法和装置
CN105183760A (zh) * 2015-07-24 2015-12-23 北京奇虎科技有限公司 一种网页组件加载方法和装置
CN105512324A (zh) * 2015-12-21 2016-04-20 用友网络科技股份有限公司 一种打包文件局部更新的前端模块化加载器
CN106294658A (zh) * 2016-08-04 2017-01-04 腾讯科技(深圳)有限公司 网页快速展示方法和装置
US20170060604A1 (en) * 2015-08-24 2017-03-02 International Business Machines Corporation Scaling past the java virtual machine thread limit

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103377059A (zh) * 2012-04-23 2013-10-30 阿里巴巴集团控股有限公司 基于jQuery框架的功能模块动态加载方法和装置
CN102799640A (zh) * 2012-06-27 2012-11-28 用友软件股份有限公司 页面加载装置和页面加载方法
CN103440151A (zh) * 2013-09-05 2013-12-11 北京京东尚科信息技术有限公司 一种动态加载Web页面的方法和装置
CN104484383A (zh) * 2014-12-10 2015-04-01 北京国双科技有限公司 Js文件处理方法和装置
CN105183760A (zh) * 2015-07-24 2015-12-23 北京奇虎科技有限公司 一种网页组件加载方法和装置
US20170060604A1 (en) * 2015-08-24 2017-03-02 International Business Machines Corporation Scaling past the java virtual machine thread limit
CN105512324A (zh) * 2015-12-21 2016-04-20 用友网络科技股份有限公司 一种打包文件局部更新的前端模块化加载器
CN106294658A (zh) * 2016-08-04 2017-01-04 腾讯科技(深圳)有限公司 网页快速展示方法和装置

Cited By (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108170493A (zh) * 2017-12-27 2018-06-15 广州安食通信息科技有限公司 一种系统模块的加载方法、系统及装置
CN108170493B (zh) * 2017-12-27 2021-01-26 广州安食通信息科技有限公司 一种系统模块的加载方法、系统及装置
CN110874246A (zh) * 2018-08-28 2020-03-10 Tcl集团股份有限公司 一种模块加载方法、系统及设备
WO2020077681A1 (zh) * 2018-10-19 2020-04-23 网宿科技股份有限公司 一种延迟加载js脚本的方法和装置
CN109343908A (zh) * 2018-10-19 2019-02-15 网宿科技股份有限公司 一种延迟加载js脚本的方法和装置
CN109445764A (zh) * 2018-10-30 2019-03-08 国网江苏省电力有限公司南通供电分公司 一种web页面动态加载方法
CN112948010A (zh) * 2019-11-25 2021-06-11 上海哔哩哔哩科技有限公司 JavaScript模块化HTML文件前端加载方法
CN112948010B (zh) * 2019-11-25 2023-06-13 上海哔哩哔哩科技有限公司 JavaScript模块化HTML文件前端加载方法
CN110989985A (zh) * 2019-11-29 2020-04-10 深圳前海环融联易信息科技服务有限公司 基于Maven的依赖包的管理方法、装置、计算机设备及存储介质
CN110989985B (zh) * 2019-11-29 2024-01-23 深圳前海环融联易信息科技服务有限公司 基于Maven的依赖包的管理方法、装置、计算机设备及存储介质
CN113064662A (zh) * 2020-01-02 2021-07-02 北京沃东天骏信息技术有限公司 一种加载应用模块的方法、客户端和服务端
CN116775030A (zh) * 2023-08-24 2023-09-19 北京长亭科技有限公司 一种安全基线的创建方法和装置
CN116775030B (zh) * 2023-08-24 2024-03-19 北京长亭科技有限公司 一种安全基线的创建方法和装置

Similar Documents

Publication Publication Date Title
CN107329785A (zh) 一种动态加载JavaScript模块的方法及系统
CN107249004B (zh) 一种身份认证方法、装置及客户端
CN103347137B (zh) 一种用户业务办理数据的处理方法及装置
CN104935744A (zh) 一种验证码显示方法、验证码显示装置及移动终端
US8204498B1 (en) Automated content download tool
CN106060046A (zh) 一种防止下载劫持的装置、移动终端和方法
CN104936157B (zh) 一种手机号码绑定账号获取方法及系统
CN104363226A (zh) 一种登录操作系统的方法、装置及系统
CN107333013A (zh) 一种会话建立方法、装置、电子设备及存储介质
CN112631910A (zh) 前端测试方法、装置、计算机设备及存储介质
CN107124477A (zh) 网站内容的处理方法、终端及服务器
CN104572099B (zh) 基于组件和中间件的低耦合框架数据处理方法及系统
CN105205001A (zh) 游戏程序的测试方法、装置及系统
CN104994082B (zh) 一种图片信息处理方法、服务器及系统
CN104333588A (zh) 一种网页计时的方法及装置
CN106454541A (zh) 呼叫方法、装置及系统
CN106982254B (zh) 文件下载的方法与装置
CN103379022B (zh) 一种基于互联网地图搜索的即时通讯方法和系统
CN108881190A (zh) 一种信息处理方法及装置
CN103338320A (zh) 一种移动用户充值数据处理方法及装置
CN104766262A (zh) 用于处理订单的方法及设备
CN110673970B (zh) 一种基于web应用的跨进程调用系统及方法
CN105100005A (zh) 身份验证方法及装置
CN108509228B (zh) 加载页面的方法、终端设备及计算机可读存储介质
CN105956173A (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
RJ01 Rejection of invention patent application after publication

Application publication date: 20171107

RJ01 Rejection of invention patent application after publication