CN103838720B - 页面文件载入执行方法和装置 - Google Patents
页面文件载入执行方法和装置 Download PDFInfo
- Publication number
- CN103838720B CN103838720B CN201210470524.8A CN201210470524A CN103838720B CN 103838720 B CN103838720 B CN 103838720B CN 201210470524 A CN201210470524 A CN 201210470524A CN 103838720 B CN103838720 B CN 103838720B
- Authority
- CN
- China
- Prior art keywords
- page file
- page
- file
- mark
- queue
- 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
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/957—Browsing optimisation, e.g. caching or content distillation
- G06F16/9574—Browsing optimisation, e.g. caching or content distillation of access to content, e.g. by caching
Landscapes
- Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Stored Programmes (AREA)
Abstract
本发明实施例公开了一种页面文件载入执行方法和装置。其中,一种页面文件载入执行方法,可包括:在触发事件发生时读取与所述触发事件所请求功能相关的N1个页面文件;将读取的N1个页面文件的标识加入执行队列中;按照执行队列中的先后顺序执行N1个页面文件,本发明实施例方案有利于提高页面文件之间执行顺序的有序可控性。
Description
技术领域
本发明涉及计算机技术领域,具体涉及页面文件载入执行方法和装置。
背景技术
按需载入是指相关的逻辑在需要的时候才被载入进来。
例如1个点击操作,在点击以后才载入运行相关JS(JavaScript)文件。这样在载入页面时有利于减少载入JS文件的数量,以达到了加快页面载入速度的目的。
要想实现一套完整的JS文件按需载入方案,需解决不同JS文件之间存在的依赖关系的问题,比如需JS文件b的功能,而JS文件b直接依赖JS文件a,那么JS文件a是须在JS文件b之前运行的。现有技术通常依托关系表来管理模块间的依赖关系,实践发现现有技术至少存在以下的技术问题:基于现有机制有时候会出现页面文件(如JS文件)之间执行顺序混乱的情况。
发明内容
本发明实施例提供页面文件载入执行方法和装置,以期提高页面文件之间执行顺序的有序可控性。
本发明实施例第一方面提供一种页面文件载入执行方法,可包括:
在触发事件发生时读取与所述触发事件所请求功能相关的N1个页面文件;
将读取的N1个页面文件的标识加入执行队列中;
按照所述执行队列中的先后顺序执行所述页面文件。
本发明实施例第二方面还提供一种页面文件载入执行装置,可包括:
读取单元,用于在触发事件发生时读取与所述触发事件所请求功能相关的N1个页面文件;
队列管理单元,用于将读取的N1个页面文件的标识加入执行队列中;
执行控制单元,用于按照所述执行队列中的先后顺序执行所述页面文件。
本发明实施例第三方面还提供一种用户终端,可包括:
处理器、存储器、输入装置和输出装置。
其中,所述处理器执行如下步骤:
在触发事件发生时读取与该触发事件所请求功能相关的N1个页面文件;将读取的N1个页面文件的标识加入执行队列中;按照执行队列中的先后顺序执行所述N1个页面文件。
本发明实施例第四方面还提供一种通信系统,可包括:
网站服务器和用户终端。
其中,所述用户终端用于,在触发事件发生时从所述网站服务器读取与该触发事件所请求功能相关的N1个页面文件;将读取的N1个页面文件的标识加入执行队列中;按照执行队列中的先后顺序执行所述N1个页面文件。
由上可见,本发明实施例提供的方案中,在触发事件发生时读取与该触发事件所请求功能相关的N1个页面文件;将读取的N1个页面文件的标识加入执行队列中,并按照执行队列中的先后顺序执行N1个页面文件。由于是通过执行队列来规划安排与请求功能相关的N1个页面文件的执行顺序,因此,可使得页面文件的执行顺序变得先后有序,有利于避免页面文件之间执行顺序混乱的情况,进而有利于增强功能实现的可靠性和稳定性。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例提供一种页面文件载入执行方法的流程示意图;
图2-a是本发明实施例提供一种执行队列的示意图;
图2-b是本发明实施例提供另一种执行队列的示意图;
图2-c是本发明实施例提供另一种执行队列的示意图;
图2-d是本发明实施例提供另一种执行队列的示意图;
图2-e是本发明实施例提供另一种执行队列的示意图;
图3-a是本发明实施例提供另一种执行队列的示意图;
图3-b是本发明实施例提供另一种执行队列的示意图;
图3-c是本发明实施例提供另一种执行队列的示意图;
图3-d是本发明实施例提供另一种执行队列的示意图;
图3-e是本发明实施例提供另一种执行队列的示意图;
图3-f是本发明实施例提供另一种执行队列的示意图;
图4是本发明实施例提供一种页面文件载入执行装置的示意图;
图5是本发明实施例提供一种用户终端的示意图;
图6是本发明实施例提供一种通信系统的示意图。
具体实施方式
本发明实施例提供一种页面文件载入执行方法和装置,以期提高页面文件之间执行顺序的有序可控性。
为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
以下分别进行详细说明。
本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”“第四”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例例如能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
本发明页面文件载入执行方法的一个实施例,可以包括:在触发事件发生时读取与该触发事件所请求功能相关的N1个页面文件;将读取的N1个页面文件的标识加入执行队列中;按照上述执行队列中的先后顺序执行上述N1个页面文件。
参见图1,本发明实施例提供的页面文件载入执行方法可包括以下内容:
101、在触发事件发生时,读取与上述触发事件所请求功能相关的N1个页面文件。
其中,触发事件可认为是用于请求某项或多项功能的任何事件,当某触发事件发生时,即表示要请求与之对应的某项或者多项功能。举例来说,触发事件可能是用户的点击指令或用户的其它指令,此时触发事件发生,即可认为是接收到了用户的点击指令或用户的其它指令,用户的点击指令或用户的其它指令例如可能是请求打开页面中的某输入框,或请求选择输入字体,颜色或其它格式等等。或者触发事件也可能是客户端(如浏览器)自动生成的指令,例如当设定的闹钟时间到达时可能需自动进行闹钟提醒或需自动进行与该时刻相关的其它操作(例如发送某邮件或某消息或发布某微博等),此时触发事件发生即可认为是接收到了客户端(如浏览器)自动生成的某指令,例如设定的闹钟时间到达的提醒指令等,其它情况以此类推。
其中,触发事件所请求功能相关的N1个页面文件可能从本地读取,也可能从网络上读取。在本发明的一些实施例中,上述N1个页面文件中的部分或全部可为JS文件。
102、将读取的N1个页面文件的标识加入执行队列中。
103、按照执行队列中的先后顺序执行上述N1个页面文件。
其中,触发事件所请求功能相关的N1个页面文件,表示触发事件所请求功能的实现需要用到这N1个页面文件,执行这N1个页面文件可能实现或部分实现触发事件所请求的功能。其中,N1个页面文件中的第三页面文件(其中第三页面文件可为该N1个页面文件中的任意一个或多个页面文件)可能还直接或间接依赖其它页面文件(其中,该其它页面文件不同于N1个页面文件的任何一个页面文件),该其它页面文件不认为是与触发事件所请求功能相关的页面文件,而被认为是与触发事件所请求功能不相关的页面文件。其中,N1为正整数。
在本发明的一些实施例中,方法还可包括:在第一页面文件执行时,将第二页面文件的标识插入执行队列的起始位置,其中,第二页面文件为第一页面文件直接依赖的页面文件,第一页面文件为上述N1个页面文件中的第三页面文件(第三页面文件可为该N1个页面文件中的任意一个或多个页面文件)直接或间接依赖的页面文件,或者上述N1个页面文件可包括第一页面文件(其中,第三页面文件可为该N1个页面文件中的任意一个或多个页面文件)。其中当某页面文件(如第一页面文件)执行时,该页面文件的标识将从执行队列中被抛出,即,执行队列中该页面文件的标识将被剔除。
举例来说,若上述N1个页面文件中的第一页面文件直接依赖第二页面文件,则在第一页面文件执行时(其中,当第一页面文件执行时,第一页面文件的标识将从执行队列中被抛出),可将第二页面文件的标识插入到执行队列中的起始位置,其中第二页面文件不同于上述N1个页面文件中的任意一个或多个页面文件。进一步的,若第二页面文件直接依赖第四页面文件,则可在第二页面文件执行时(其中,当第二页面文件执行时第二页面文件的标识将从执行队列中被抛出),可将第四页面文件的标识插入到执行队列中的起始位置,其中第四页面文件不同于上述N1个页面文件中的任意一个或多个页面文件。若第四页面文件还直接依赖其它页面文件,可以此类推。
在本发明的一些实施例中,在第一页面文件执行时,将第二页面文件的标识插入执行队列的起始位置,可以包括:在第一页面文件执行时,用临时变量X(其中,临时变量X的长度可能大于或等于第一页面文件标识的长度)替换执行队列中第一页面文件的标识,再用第二页面文件的标识替换执行队列中的临时变量X。或者也可在第一页面文件执行时,用第二页面文件的标识来替换执行队列中的第一页面文件的标识。可以理解的是,第二页面文件可能为一个或多个页面文件,若第一页面文件为一个页面文件,而第二页面文件为多个页面文件,则第二页面文件的标识(包括多个页面文件标识)的长度将可能大于第一页面文件的长度。
在本发明的一些实施例中,若第一页面文件还包括了与第二页面文件关联的N2个函数,则可将N2个函数的标识插入到执行队列中第二页面文件的标识之后的相邻位置,如此,若第二页面文件不依赖其它任何页面文件,则在第二页面文件执行之后便可执行该N2个函数,若第二页面文件还依赖其它页面文件,则可能在第二页面文件和其所依赖的其它页面文件执行完之后再执行该N2个函数。其中,N2为正整数。
在本发明的一些实施例中,若某页面文件直接依赖其它页面文件,则该页面文件中可记录其直接依赖的页面文件的标识,举例来说,若第一页面文件直接依赖第二页面文件,第一页面文件中可记录其直接依赖的第二页面文件的标识。如此,与现有机制通过使用关系表来维护页面文件之间的依赖关系相比,本发明实施例中将页面文件之间的依赖关系分散在各页面文件中维护,每个页面文件都声明自己直接依赖的其它页面文件,消除了对关系表的维护,这样有利于简化页面文件之间依赖关系维护的复杂度,进而有利于更好的适应复杂场景需求。
需要说明的是,本发明实施例中提及的页面文件,可指JS文件或其它类型的页面文件(例如其它类型的代码文件)。
可以看出,本实施例中,在触发事件发生时读取与该触发事件所请求功能相关的N1个页面文件;将读取的N1个页面文件的标识加入执行队列中;并按照执行队列中的先后顺序执行上述N1个页面文件。由于是通过执行队列来规划安排请求功能相关的N1个页面文件的执行顺序,因此,可使得页面文件的执行顺序变得先后有序,有利于避免页面文件之间执行顺序混乱的情况,进而有利于增强功能实现的可靠性和稳定性。
进一步的,本发明实施例中,将页面文件之间的依赖关系分散在各页面文件中维护,每个页面文件都声明自己直接依赖的其它页面文件,进而消除了对关系表的维护,这样有利于简化页面文件之间依赖关系维护的复杂度,进而有利于更好的适应复杂场景需求。
为便于更好的理解本发明实施例的上述方案,下面举例几个应用场景进行进一步说明。下面举例的应用场景中主要以页面文件为JS文件为例,其它页面文件为除JS文件外的其它类型页面文件的情况,以此类推。
假设存在这样一种场景,当页面载入完毕以后,用户点击了页面中一个颜色选择器的按钮。但是为了加快页面的载入速度,当前页面并没有载入与颜色选择器相关的JS脚本,这时候需调用与颜色选择器相关的JS脚本,假设包括JS脚本A和JS脚本B,其中,JS脚本A需先于JS脚本B执行。
假设JS脚本A的标识为Sa,JS脚本B的标识为Sb,假设执行队列当前包括JS脚本A的标识和JS脚本B的标识,初始执行队列可如图2-a所示。当执行到JS脚本A时,JS脚本A的标识Sa从执行队列中抛出。但是,JS脚本A初始化的过程中发现,这个时候必须载入另一个文件,例如负责弹窗定位的JS脚本C,即JS脚本A对JS脚本C有依赖,而执行队列当前不为空,此时,若将JS脚本C的标识添加到执行队列最后(即JS脚本B的标识之后)则会出现依赖关系错误,因为由于JS脚本C必须在JS脚本A初始化完成前初始化,将JS脚本C的标识添加到执行队列最后(即JS脚本B的标识之后),则JS脚本C就无法在JS脚本A初始化完成前初始化,进而出现依赖关系错误情况。因此,实际上需要将JS脚本C的标识插入到执行队列的起始位置,即将JS脚本C的标识插入到执行队列中的JS脚本B标识之前。
例如可引入1个临时变量i,当JS脚本A初始化时,临时变量i设为0,标志执行队列中的JS脚本A的标识所在位置(截断位置),截断位置将执行队列分为两部分,执行队列如图2-b所示。当发现JS脚本A依赖于JS脚本C时,将JS脚本C的标识插入到执行队列的截断位置之前,此时执行队列如图2-c所示。此外若假设JS脚本A依赖于JS脚本C、JS脚本D和JS脚本E,则将JS脚本C的标识(Sc)和JS脚本D的标识(Sd)和JS脚本E(Se)的标识插入到执行队列的截断位置之前,此时执行队列可如图2-d所示。
以此类推,JS脚本C(其它JS脚本)初始化时,临时变量i设为0,标志执行队列中的JS脚本C的标识所在位置(截断位置),假设发现JS脚本C依赖于JS脚本F,将JS脚本F的标识(Sf)插入到执行队列的截断位置之前,此时执行队列可如图2-e所示。可以理解,JS脚本A直接依赖JS脚本C,而JS脚本C直接依赖JS脚本F,因此可认为JS脚本A间接依赖JS脚本F。
又例如,假设存在这样一种场景,当页面载入完毕以后,用户点击了页面中的功能按钮W。但是为了加快页面的载入速度,当前页面并没有载入与功能按钮W对应的功能相关的JS脚本,这时候需调用与功能按钮W对应的功能相关的JS脚本,假设包括JS脚本A2、JS脚本B2和JS脚本C2,其中,JS脚本A2需先于JS脚本B2执行,JS脚本B2需先于JS脚本C2执行。
假设JS脚本A2的标识为Sa2,JS脚本B2的标识为Sb2,JS脚本C2的标识为Sc2,假设执行队列当前包括JS脚本A2的标识、JS脚本B2的标识和JS脚本C2的标识,初始执行队列可如图3-a所示。当执行到JS脚本A2时,JS脚本A2的标识Sa2从执行队列中抛出。但是,JS脚本A2初始化的过程中发现,这个时候必须载入JS脚本D2,即,JS脚本A2对JS脚本D2有依赖,而执行队列当前还并不为空,此时需将JS脚本D2的标识插入到执行队列的起始位置,即将JS脚本D2的标识插入到执行队列中的JS脚本B2标识之前。
例如可引入1个临时变量i,当JS脚本A2初始化时,临时变量i设为0,标志执行队列中的JS脚本A2的标识所在位置(截断位置),截断位置将执行队列分为两部分,执行队列如图3-b所示。若发现JS脚本A2依赖于JS脚本D2,将JS脚本D2的标识(Sd2)插入到执行队列的截断位置之前,此时,执行队列如图3-c所示。假设,JS脚本A2中还有未执行的与JS脚本D2相关的函数A2-1(标识为Sa2-1)和函数A2-2(标识为Sa2-2),可将函数A2-1的标识和函数A2-2的标识插入到,执行队列中JS脚本D2的标识之后的相邻位置,此时执行队列可如图3-d所示。
以此类推,JS脚本D2(其它JS脚本)初始化时,临时变量i设为0,标志执行队列中的JS脚本D2的标识所在位置(截断位置),假设发现JS脚本D2依赖于JS脚本E2和JS脚本F2,将JS脚本E2的标识(Se2)的JS脚本F2的标识(Sf2)插入到执行队列的截断位置之前,此时执行队列可如图3-e所示。假设JS脚本D2中还有未执行的与JS脚本F2相关的函数D2-1(标识为Sd2-1)和函数D2-2(标识为Sd2-2),可将函数D2-1的标识和函数D2-2的标识,插入到执行队列中JS脚本F2的标识之后的相邻位置,此时执行队列如图3-f所示。
可以看出,引入执行队列可实现JS脚本以线性执行方式执行,有利于保证的JS脚本依赖关系和时序的稳定性。随着网络端的复杂化,页面需要的脚本数量也在升高,按需载入有较大的实际性能提升价值,但平衡页面缓存、请求数量和JS脚本大小三者之间的关系始终是一种复杂的工作,本发明实施例提出完全使用队列管理JS脚本的方法,让整个执行过程顺序条理清晰,有效避免JS脚本多重载入时执行顺序多线程的混乱,保证了时序稳定。
为便于更好实施本发明实施例的上述方案,下面还提供用于实施上述方案的相关装置。
本发明实施例还提供一种页面文件载入执行装置400,可包括:
读取单元410、队列管理单元420和执行控制单元430。
其中,读取单元410,用于在触发事件发生时读取与上述触发事件所请求功能相关的N1个页面文件。
其中,触发事件所请求功能相关的N1个页面文件,表示触发事件所请求功能的实现需要用到这N1个页面文件,执行这N1个页面文件可能实现或部分实现触发事件所请求的功能。其中,N1个页面文件中的第三页面文件(其中,第三页面文件可为该N1个页面文件中的任意一个或多个页面文件)可能还直接或间接依赖其它页面文件(该其它页面文件不同于N1个页面文件的任何一个页面文件),该其它页面文件不认为是与触发事件所请求功能相关的页面文件,而被认为是与触发事件所请求功能不相关的页面文件。其中,N1为正整数。
队列管理单元420,用于将读取单元410读取的N1个页面文件的标识加入执行队列中。
执行控制单元430,用于按照上述执行队列中的先后顺序执行上述页面文件。
在本发明的一些实施例中,队列管理单元420还可用于,在第一页面文件执行时,将第二页面文件的标识插入上述执行队列的起始位置,其中,第二页面文件为第一页面文件直接依赖的页面文件,第一页面文件为上述N1个页面文件中的第三页面文件直接或间接依赖的页面文件,或者上述N1个页面文件包括第一页面文件。
举例来说,若上述N1个页面文件中的第一页面文件直接依赖第二页面文件,则在第一页面文件执行时(当第一页面文件执行时,第一页面文件的标识将从执行队列中被抛出),可将第二页面文件的标识插入到执行队列中的起始位置,其中第二页面文件不同于上述N1个页面文件中的任意一个或多个页面文件。进一步的,若第二页面文件直接依赖第四页面文件,则可在第二页面文件执行时(当第二页面文件执行时第二页面文件的标识将从执行队列中被抛出),可将第四页面文件的标识插入到执行队列中的起始位置,其中第四页面文件不同于上述N1个页面文件中的任意一个或多个页面文件。若第四页面文件还直接依赖其它页面文件,可以此类推。
在本发明的一些实施例中,队列管理单元420还用于,在第一页面文件执行时,用临时变量X替换上述执行队列中第一页面文件的标识,再用第二页面文件的标识替换上述执行队列中的上述临时变量X,其中,第二页面文件为第一页面文件直接依赖的页面文件,第一页面文件为上述N1个页面文件中的第三页面文件直接或间接依赖的页面文件,或者上述N1个页面文件包括第一页面文件。
在本发明一些实施例中,队列管理单元420还用于,若第一页面文件还包括了与第二页面文件关联的N2个函数,则将上述N2个函数的标识插入到上述执行队列中第二页面文件的标识之后的相邻位置。如此,若第二页面文件不依赖其它任何页面文件,则在第二页面文件执行之后便可执行该N2个函数,若第二页面文件还依赖其它页面文件,则可能在第二页面文件和其所依赖的其它页面文件执行完之后再执行该N2个函数。其中,N2为正整数。
在本发明的一些实施例中,若某页面文件直接依赖其它页面文件,则该页面文件中可记录其直接依赖的页面文件的标识,举例来说,若第一页面文件直接依赖第二页面文件,第一页面文件中可记录其直接依赖的第二页面文件的标识。如此,与现有机制通过使用关系表来维护页面文件之间的依赖关系相比,本发明实施例中将页面文件之间的依赖关系分散在各页面文件中维护,每个页面文件都只声明自己直接依赖的其它页面文件,消除了对关系表的维护,这样有利于简化页面文件之间依赖关系维护的复杂度,进而有利于更好的适应复杂场景需求。
需要说明的是,本发明实施例中提及的页面文件,可指JS文件或其它类型的页面文件(例如其它类型的代码文件)。
可以理解的是,本实施例的页面文件载入执行装置400的各功能模块的功能可根据上述方法实施例中的方法具体实现,其具体实现过程可以参照上述方法实施例的相关描述,此处不再赘述。
可以看出,本实施例中,页面文件载入执行装置400在触发事件发生时读取与该触发事件所请求功能相关的N1个页面文件;将读取的N1个页面文件的标识加入执行队列中;并按照执行队列中的先后顺序执行上述N1个页面文件。由于页面文件载入执行装置400是通过执行队列,来规划安排触发事件所请求功能相关的N1个页面文件的执行顺序,因此可使得页面文件的执行顺序变得先后有序,有利于避免页面文件之间执行顺序混乱的情况,进而有利于增强功能实现的可靠性和稳定性。
进一步的,本发明实施例中,将页面文件之间的依赖关系分散在各页面文件中维护,每个页面文件都声明自己直接依赖的其它页面文件,进而消除了对关系表的维护,这样有利于简化页面文件之间依赖关系维护的复杂度,进而有利于更好的适应复杂场景需求。
本发明实施例还提供一种用户终端500,可包括:
处理器510、存储器520、输入装置530和输出装置540。用户终端500中的处理器510的数量可以一个或多个,图5中以一个处理器为例。在本发明的一些实施例中,处理器510、存储器520、输入装置530和输出装置540可通过总线或其它方式连接,其中,图5中以通过总线连接为例。
其中,处理器510执行如下步骤:
在触发事件发生时读取与该触发事件所请求功能相关的N1个页面文件;将读取的N1个页面文件的标识加入执行队列中;按照执行队列中的先后顺序执行上述N1个页面文件。
其中,触发事件所请求功能相关的N1个页面文件,表示触发事件所请求功能的实现需要用到这N1个页面文件,执行这N1个页面文件可能实现或部分实现触发事件所请求的功能。其中,N1个页面文件中的第三页面文件(其中,第三页面文件可为该N1个页面文件中的任意一个或多个页面文件)可能还直接或间接依赖其它页面文件(该其它页面文件不同于N1个页面文件的任何一个页面文件),该其它页面文件不认为是与触发事件所请求功能相关的页面文件,而被认为是与触发事件所请求功能不相关的页面文件。其中,N1为正整数。
在本发明的一些实施例中,处理器510还可执行如下步骤:
在第一页面文件执行时,将第二页面文件的标识插入上述执行队列的起始位置,其中,第二页面文件为第一页面文件直接依赖的页面文件,第一页面文件为上述N1个页面文件中的第三页面文件直接或间接依赖的页面文件,或者上述N1个页面文件包括第一页面文件。
举例来说,若上述N1个页面文件中的第一页面文件直接依赖第二页面文件,则在第一页面文件执行时(当第一页面文件执行时,第一页面文件的标识将从执行队列中被抛出),处理器510可将第二页面文件的标识插入到执行队列中的起始位置,其中,第二页面文件不同于上述N1个页面文件中的任意一个或多个页面文件。
进一步的,若第二页面文件直接依赖第四页面文件,则处理器510可在第二页面文件执行时(其中,当第二页面文件执行时第二页面文件的标识将从执行队列中被抛出),可将第四页面文件的标识插入到执行队列中的起始位置,其中,第四页面文件不同于上述N1个页面文件中的任意一个或多个页面文件。若第四页面文件还直接依赖其它页面文件,可以此类推。
在本发明的一些实施例中,处理器510还可执行如下步骤:在第一页面文件执行时,用临时变量X替换上述执行队列中第一页面文件的标识,再用第二页面文件的标识替换上述执行队列中的上述临时变量X,其中,第二页面文件为第一页面文件直接依赖的页面文件,第一页面文件为上述N1个页面文件中的第三页面文件直接或间接依赖的页面文件,或者上述N1个页面文件包括第一页面文件。
在本发明的一些实施例中,处理器510还可执行如下步骤:若第一页面文件还包括了与第二页面文件关联的N2个函数,则将上述N2个函数的标识插入到上述执行队列中第二页面文件的标识之后的相邻位置。如此,若第二页面文件不依赖其它任何页面文件,则在第二页面文件执行之后便可执行该N2个函数,若第二页面文件还依赖其它页面文件,则可能在第二页面文件和其所依赖的其它页面文件执行完之后再执行该N2个函数。其中,N2为正整数。
在本发明的一些实施例中,若某页面文件直接依赖其它页面文件,则该页面文件中可记录其直接依赖的页面文件的标识,举例来说,若第一页面文件直接依赖第二页面文件,第一页面文件中可记录其直接依赖的第二页面文件的标识。如此,与现有机制通过使用关系表来维护页面文件之间的依赖关系相比,本发明实施例中将页面文件之间的依赖关系分散在各页面文件中维护,每个页面文件都只声明自己直接依赖的其它页面文件,消除了对关系表的维护,这样有利于简化页面文件之间依赖关系维护的复杂度,进而有利于更好的适应复杂场景需求。
需要说明的是,本发明实施例中提及的页面文件,可指JS文件或其它类型的页面文件(例如其它类型的代码文件)
可以理解的是,本实施例的用户终端500的各功能模块的功能可根据上述方法实施例中的方法具体实现,其具体实现过程可以参照上述方法实施例的相关描述,此处不再赘述。
可以看出,本实施例中,用户终端500在触发事件发生时读取与该触发事件所请求功能相关的N1个页面文件;将读取的N1个页面文件的标识加入执行队列中;并按照执行队列中的先后顺序执行上述N1个页面文件。由于用户终端500是通过执行队列,来规划安排触发事件所请求功能相关的N1个页面文件的执行顺序,因此可使得页面文件的执行顺序变得先后有序,有利于避免页面文件之间执行顺序混乱的情况,进而有利于增强功能实现的可靠性和稳定性。
进一步的,本发明实施例中,将页面文件之间的依赖关系分散在各页面文件中维护,每个页面文件都声明自己直接依赖的其它页面文件,进而消除了对关系表的维护,这样有利于简化页面文件之间依赖关系维护的复杂度,进而有利于更好的适应复杂场景需求。
本发明实施例还提供一种通信系统,可包括:
网站服务器610和用户终端620。
其中,用户终端620,用于在触发事件发生时从网站服务器610读取与该触发事件所请求功能相关的N1个页面文件;将读取的N1个页面文件的标识加入执行队列中;按照执行队列中的先后顺序执行上述N1个页面文件。
其中,触发事件所请求功能相关的N1个页面文件,表示触发事件所请求功能的实现需要用到这N1个页面文件,执行这N1个页面文件可能实现或部分实现触发事件所请求的功能。其中,N1个页面文件中的第三页面文件(其中,第三页面文件可为该N1个页面文件中的任意一个或多个页面文件)可能还直接或间接依赖其它页面文件(其中,该其它页面文件不同于N1个页面文件的任何一个页面文件),该其它页面文件不认为是与触发事件所请求功能相关的页面文件,而被认为是与触发事件所请求功能不相关的页面文件。其中,N1为正整数。
在本发明的一些实施例中,用户终端620还用于,
在第一页面文件执行时,将第二页面文件的标识插入上述执行队列的起始位置,其中,第二页面文件为第一页面文件直接依赖的页面文件,第一页面文件为上述N1个页面文件中的第三页面文件直接或间接依赖的页面文件,或者上述N1个页面文件包括第一页面文件。
举例来说,若上述N1个页面文件中的第一页面文件直接依赖第二页面文件,则在第一页面文件执行时(当第一页面文件执行时,第一页面文件的标识将从执行队列中被抛出),处理器510可将第二页面文件的标识插入到执行队列中的起始位置,其中,第二页面文件不同于上述N1个页面文件中的任意一个或多个页面文件。
进一步的,若第二页面文件直接依赖第四页面文件,则处理器510可在第二页面文件执行时(其中,当第二页面文件执行时第二页面文件的标识将从执行队列中被抛出),可将第四页面文件的标识插入到执行队列中的起始位置,其中,第四页面文件不同于上述N1个页面文件中的任意一个或多个页面文件。若第四页面文件还直接依赖其它页面文件,可以此类推。
在本发明的一些实施例中,用户终端620还用于,在第一页面文件执行时用临时变量X替换上述执行队列中第一页面文件的标识,再用第二页面文件的标识替换上述执行队列中的上述临时变量X,其中,第二页面文件为第一页面文件直接依赖的页面文件,第一页面文件为上述N1个页面文件中的第三页面文件直接或间接依赖的页面文件,或者上述N1个页面文件包括第一页面文件。
在本发明的一些实施例中,用户终端620还用于,若第一页面文件还包括了与第二页面文件关联的N2个函数,则将上述N2个函数的标识插入到上述执行队列中第二页面文件的标识之后的相邻位置。如此,若第二页面文件不依赖其它任何页面文件,则在第二页面文件执行之后便可执行该N2个函数,若第二页面文件还依赖其它页面文件,则可能在第二页面文件和其所依赖的其它页面文件执行完之后再执行该N2个函数。其中,N2为正整数。
在本发明的一些实施例中,若某页面文件直接依赖其它页面文件,则该页面文件中可记录其直接依赖的页面文件的标识,举例来说,若第一页面文件直接依赖第二页面文件,第一页面文件中可记录其直接依赖的第二页面文件的标识。如此,与现有机制通过使用关系表来维护页面文件之间的依赖关系相比,本发明实施例中将页面文件之间的依赖关系分散在各页面文件中维护,每个页面文件都只声明自己直接依赖的其它页面文件,消除了对关系表的维护,这样有利于简化页面文件之间依赖关系维护的复杂度,进而有利于更好的适应复杂场景需求。
需要说明的是,本发明实施例中提及的页面文件,可指JS文件或其它类型的页面文件(例如其它类型的代码文件)。
可以理解的是,本实施例的用户终端620的功能可根据上述方法实施例中的方法具体实现,其具体实现过程可以参照上述方法实施例的相关描述,此处不再赘述。
可以看出,本实施例中,用户终端620在触发事件发生时从网站服务器读取与该触发事件所请求功能相关的N1个页面文件;将读取的N1个页面文件的标识加入执行队列中;并按照执行队列中的先后顺序执行上述N1个页面文件。由于用户终端620是通过执行队列,来规划安排触发事件所请求功能相关的N1个页面文件的执行顺序,因此,可使得页面文件的执行顺序变得先后有序,有利于避免页面文件之间执行顺序混乱的情况,进而有利于增强功能实现的可靠性和稳定性。
进一步的,本发明实施例中,将页面文件之间的依赖关系分散在各页面文件中维护,每个页面文件都声明自己直接依赖的其它页面文件,进而消除了对关系表的维护,这样有利于简化页面文件之间依赖关系维护的复杂度,进而有利于更好的适应复杂场景需求。
本发明实施例还提供一种计算机存储介质,其中,该计算机存储介质可存储有程序,该程序执行时包括上述方法实施例中记载的页面文件载入执行方法的部分或全部步骤。
需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为依据本发明,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本发明所必须的。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
综上,本发明实施例提供的方案中,在触发事件发生时读取与该触发事件所请求功能相关的N1个JS文件;将读取的N1个JS文件的标识加入执行队列中,并按照执行队列中的先后顺序执行N1个JS文件。由于是通过执行队列来规划安排与请求功能相关的N1个JS文件的执行顺序,因此,可使得JS文件的执行顺序变得先后有序,有利于避免JS文件之间执行顺序混乱的情况,进而有利于增强功能实现的可靠性和稳定性。
进一步的,本发明实施例中,将JS文件之间的依赖关系分散在各JS文件中维护,每个JS文件都声明自己直接依赖的其它JS文件,进而消除了对关系表的维护,这样有利于简化JS文件之间依赖关系维护的复杂度,进而有利于更好的适应复杂场景需求。
在本申请所提供的几个实施例中,应该理解到,所揭露的装置,可通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
Claims (4)
1.一种页面文件载入执行方法,其特征在于,包括:
在触发事件发生时,读取与所述触发事件所请求功能相关的N1个页面文件,所述N1为正整数,所述N1个页面文件中包括第三页面文件,所述第三页面文件直接或间接依赖于第一页面文件或所述N1个页面文件中还包括所述第一页面文件,所述第一页面文件直接依赖于第二页面文件;
在所述第一页面文件执行时,将所述第二页面文件的标识插入执行队列的起始位置,包括:在所述第一页面文件执行时,用临时变量X替换所述执行队列中所述第一页面文件的标识,再用所述第二页面文件的标识替换所述执行队列中的所述临时变量X,并将所述第一页面文件的标识从所述执行队列中抛出或剔除;若所述第一页面文件还包括了与所述第二页面文件关联的N2个函数,则将所述N2个函数的标识插入到所述执行队列中所述第二页面文件的标识之后的相邻位置,所述N2为正整数;
按照所述执行队列中的先后顺序执行所述页面文件。
2.根据权利要求1所述的方法,其特征在于,所述第一页面文件中记录了其直接依赖的所述第二页面文件的标识。
3.根据权利要求1或2所述的方法,其特征在于,
所述页面文件为JS文件。
4.一种页面文件载入执行装置,其特征在于,包括:
读取单元,用于在触发事件发生时,读取与所述触发事件所请求功能相关的N1个页面文件,所述N1为正整数,所述N1个页面文件中包括第三页面文件,所述第三页面文件直接或间接依赖于第一页面文件或所述N1个页面文件中还包括所述第一页面文件,所述第一页面文件直接依赖于第二页面文件;
队列管理单元,用于在所述第一页面文件执行时,用临时变量X替换所述执行队列中所述第一页面文件的标识,再用所述第二页面文件的标识替换所述执行队列中的所述临时变量X,并将所述第一页面文件的标识抛出或剔除;若所述第一页面文件还包括了与所述第二页面文件关联的N2个函数,则将所述N2个函数的标识插入到所述执行队列中所述第二页面文件的标识之后的相邻位置,所述N2为正整数;
执行控制单元,用于按照所述执行队列中的先后顺序执行所述页面文件。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210470524.8A CN103838720B (zh) | 2012-11-20 | 2012-11-20 | 页面文件载入执行方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210470524.8A CN103838720B (zh) | 2012-11-20 | 2012-11-20 | 页面文件载入执行方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103838720A CN103838720A (zh) | 2014-06-04 |
CN103838720B true CN103838720B (zh) | 2018-09-07 |
Family
ID=50802236
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201210470524.8A Active CN103838720B (zh) | 2012-11-20 | 2012-11-20 | 页面文件载入执行方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103838720B (zh) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106547527B (zh) * | 2015-09-22 | 2020-01-21 | 阿里巴巴集团控股有限公司 | 一种JavaScript文件构建方法及装置 |
US10574739B2 (en) * | 2016-02-26 | 2020-02-25 | Honeywell International Inc. | System and method for smart event paging |
CN106055367B (zh) * | 2016-06-01 | 2021-06-18 | 腾讯科技(深圳)有限公司 | 一种脚本文件载入方法及装置 |
CN109145236A (zh) * | 2017-06-28 | 2019-01-04 | 艺龙网信息技术(北京)有限公司 | 页面文件处理方法、装置及系统 |
CN109343908B (zh) * | 2018-10-19 | 2020-12-29 | 网宿科技股份有限公司 | 一种延迟加载js脚本的方法和装置 |
CN109857786B (zh) * | 2018-12-19 | 2020-10-30 | 成都四方伟业软件股份有限公司 | 页面数据填充方法及装置 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101669114A (zh) * | 2007-04-27 | 2010-03-10 | 微软公司 | 动态加载脚本 |
CN102081633A (zh) * | 2009-11-27 | 2011-06-01 | 阿里巴巴集团控股有限公司 | 一种JavaScript文件的管理方法、装置和系统 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8079025B2 (en) * | 2007-06-08 | 2011-12-13 | Apple Inc. | Asynchronous load of source dependencies |
US9477497B2 (en) * | 2008-09-26 | 2016-10-25 | Juniper Networks, Inc. | Methods for determining resource dependency and systems thereof |
-
2012
- 2012-11-20 CN CN201210470524.8A patent/CN103838720B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101669114A (zh) * | 2007-04-27 | 2010-03-10 | 微软公司 | 动态加载脚本 |
CN102081633A (zh) * | 2009-11-27 | 2011-06-01 | 阿里巴巴集团控股有限公司 | 一种JavaScript文件的管理方法、装置和系统 |
Also Published As
Publication number | Publication date |
---|---|
CN103838720A (zh) | 2014-06-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103838720B (zh) | 页面文件载入执行方法和装置 | |
CN104504133B (zh) | 应用程序的推荐方法及装置 | |
CN110046101B (zh) | 页面自动化测试方法、装置及计算机存储介质 | |
US10606734B2 (en) | Intelligent device selection for mobile application testing | |
JP2019518257A (ja) | 状態制御方法及び装置 | |
CN104731607B (zh) | 终端终生学习处理方法、装置和系统 | |
US9501306B2 (en) | Placing virtual machines in a virtual environment | |
US20180060564A1 (en) | Generation of secure passwords in real-time using personal data | |
CN106775394B (zh) | 内容展现方法、装置及电子设备、存储介质 | |
CN107704241A (zh) | 一种页面状态切换的显示方法和装置 | |
CN107408105A (zh) | 有条件受控加样式 | |
CN109600724A (zh) | 一种短信发送的方法和装置 | |
CN105959403A (zh) | 一种壁纸的推荐方法、服务器及移动终端 | |
CN109558159A (zh) | 游戏中用户界面的更新方法和装置 | |
CN113407254B (zh) | 表单生成方法、装置、电子设备及存储介质 | |
US10929454B2 (en) | System and method for organizing notes | |
CN109358927A (zh) | 应用程序显示的方法、装置及终端设备 | |
CN108154306A (zh) | 众包模式的任务处理方法、装置、设备及计算机可读存储介质 | |
CN106528141A (zh) | 任务清除方法及系统 | |
US10222858B2 (en) | Thumbnail generation for digital images | |
US20180293708A1 (en) | Selectively deteriorate ebook for secondary market | |
CN109255104A (zh) | 批文模板配置方法、装置、计算机设备及存储介质 | |
US11449800B2 (en) | Machine-learned data management between devices | |
CN104461709B (zh) | 任务计划的控制方法和装置 | |
CN105531661A (zh) | 全屏内容查看界面进入 |
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 |