CN102081633A - 一种JavaScript文件的管理方法、装置和系统 - Google Patents

一种JavaScript文件的管理方法、装置和系统 Download PDF

Info

Publication number
CN102081633A
CN102081633A CN2009102498400A CN200910249840A CN102081633A CN 102081633 A CN102081633 A CN 102081633A CN 2009102498400 A CN2009102498400 A CN 2009102498400A CN 200910249840 A CN200910249840 A CN 200910249840A CN 102081633 A CN102081633 A CN 102081633A
Authority
CN
China
Prior art keywords
file
javascript
javascript file
request
module
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
CN2009102498400A
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.)
Alibaba Group Holding Ltd
Original Assignee
Alibaba Group Holding 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 Alibaba Group Holding Ltd filed Critical Alibaba Group Holding Ltd
Priority to CN2009102498400A priority Critical patent/CN102081633A/zh
Publication of CN102081633A publication Critical patent/CN102081633A/zh
Pending legal-status Critical Current

Links

Images

Landscapes

  • Information Transfer Between Computers (AREA)

Abstract

本发明公开了一种JavaScript文件的管理方法、装置和系统,该方法包括以下步骤:接收并解析来自客户端的JavaScript请求,获取所述JavaScript请求对应的文件数组,根据所述文件数组遍历文件依赖关系结构图,查找所述JavaScript请求对应的JavaScript文件以及与所述JavaScript文件存在依赖关系的文件集合;如果查找到所述JavaScript请求对应的JavaScript文件以及与所述JavaScript文件存在依赖关系的文件集合,则将所述JavaScript文件和所述文件集合发送到所述客户端。本发明提高了页面载入的速度、加快了网页下载的速度。

Description

一种JavaScript文件的管理方法、装置和系统
技术领域
本申请涉及网络技术领域,特别是涉及一种JavaScript文件的管理方法、装置和系统。
背景技术
JavaScript是一种面向对象的动态类型的区分大小写的客户端脚本语言,主要用于解决服务器端语言,比如Per1语言,遗留的速度问题,为客户提供更流畅的浏览效果。由于服务器端需要对数据进行验证,而网络速度相当缓慢,验证步骤浪费的时间太多,因此,JavaScript提供了数据验证的基本功能。
现有技术中,通常将JavaScript文件部署到HTTP(Hypertext TransferProtocol,超文本传输协议)服务器上,例如Apache,并在WEB(网页)应用的HTML(Hyper Text Mark-up Language,超文本标记语言)页面上书写JavaScript请求的URL(Uniform Resource Locator,统一资源定位符)。客户端浏览器访问页面时,解析页面上的JavaScript请求,并从JavaScript服务器下载相应的JavaScript文件。
在实现本申请的过程中,发明人发现现有技术至少存在如下问题:
由于JavaScript文件之间不存在依赖,需要在浏览器的页面上声明所有使用到的JavaScript文件对应的JavaScript请求,增加了JavaScript请求数;如果在同一个页面上有重复声明的JavaScript请求,会造成浏览器重复下载JavaScript文件,增加了HTTP请求数;如果用户不了解JavaScript文件之间的依赖情况,有可能会声明页面上没有使用到的JavaScript文件,严重地影响到页面的下载速度,降低了用户访问网站的体验。
发明内容
本申请提供一种JavaScript文件的管理方法、装置和系统,用于提高页面载入速度、加速网页下载。
本申请提出一种JavaScript文件的管理方法,包括以下步骤:
接收并解析来自客户端的JavaScript请求,获取所述JavaScript请求对应的文件数组,根据所述文件数组遍历文件依赖关系结构图,查找所述JavaScript请求对应的JavaScript文件以及与所述JavaScript文件存在依赖关系的文件集合;
如果查找到所述JavaScript请求对应的JavaScript文件以及与所述JavaScript文件存在依赖关系的文件集合,则将所述JavaScript文件和所述文件集合发送到所述客户端。
优选地,所述将JavaScript文件和文件集合发送到客户端之前,还包括:
对所述查找到的JavaScript文件和文件集合进行压缩处理。
优选地,所述的方法,还包括:
将JavaScript文件的发布目录与工作目录比较,判断所述发布目录是否有文件更新,如果没有文件更新,则将所述工作目录中的JavaScript文件载入所述缓存中;如果有文件更新,则将所述发布目录中的JavaScript文件载入所述缓存中,并将所述发布目录中的JavaScript文件复制到所述工作目录;
解析并保存所述缓存中的JavaScript文件的依赖关系信息,根据所述依赖关系信息校验所述JavaScript文件依赖的文件是否存在;
如果所述JavaScript文件依赖的文件不存在,则显示异常信息,终止系统初始化进程。
优选地,所述根据依赖关系信息校验JavaScript文件依赖的文件是否存在之后,还包括:
如果所述JavaScript文件依赖的文件存在,则校验所述依赖关系信息是否存在环路依赖,如果存在环路依赖,则显示异常信息,终止系统初始化进程;如果不存在环路依赖,则压缩所述缓存中的JavaScript文件。
优选地,在接收来自客户端的JavaScript请求之后还包括:根据所述JavaScript请求对应的统一资源定位符URL查询缓存中是否存在与所述URL对应的JavaScript文件,如果所述缓存中不存在与所述URL对应的JavaScript文件,则解析所述JavaScript请求,获取所述JavaScript请求对应的文件数组。
本申请提出一种网络服务器,包括:
接收模块,用于接收来自客户端的JavaScript请求;
解析模块,用于解析所述接收模块接收到的JavaScript请求,获取所述JavaScript请求对应的文件数组;
遍历模块,用于根据所述解析模块获取的文件数组遍历文件依赖关系结构图,查找所述JavaScript请求对应的JavaScript文件以及与所述JavaScript文件存在依赖关系的文件集合;
发送模块,用于在所述遍历模块查找到所述JavaScript请求对应的JavaScript文件以及与所述JavaScript文件存在依赖关系的文件集合时,将所述JavaScript文件和所述文件集合发送到所述客户端。
优选地,所述发送模块,还用于对所述查找到的JavaScript文件和文件集合进行压缩处理。
优选地,所述的网络服务器,还包括:
判断模块,用于将JavaScript文件的发布目录与工作目录比较,判断所述发布目录是否有文件更新;
存储模块,用于在所述判断模块判断所述发布目录没有文件更新时,将所述工作目录中的JavaScript文件载入所述缓存中;在所述判断模块判断所述发布目录有文件更新时,将所述发布目录中的JavaScript文件载入所述缓存中,并将所述发布目录中的JavaScript文件复制到所述工作目录;
校验模块,用于解析并保存所述存储模块载入到缓存中的JavaScript文件的依赖关系信息,根据所述依赖关系信息校验所述JavaScript文件依赖的文件是否存在;
处理模块,用于在所述校验模块判断所述JavaScript文件依赖的文件不存在时,显示异常信息,终止系统初始化进程。
优选地,所述校验模块,还用于在所述JavaScript文件依赖的文件存在时,校验所述依赖关系信息是否存在环路依赖;
所述处理模块,用于在所述校验模块判断所述依赖关系信息存在环路依赖时,显示异常信息,终止系统初始化进程;在所述校验模块判断所述依赖关系信息不存在环路依赖时,压缩所述缓存中的JavaScript文件。
本申请提出一种JavaScript文件的管理系统,包括客户端和服务器端,
所述服务器端,用于接收并解析来自所述客户端的JavaScript请求,获取所述JavaScript请求对应的文件数组,根据所述文件数组遍历文件依赖关系结构图,查找所述JavaScript请求对应的JavaScript文件以及与所述JavaScript文件存在依赖关系的文件集合;如果查找到所述JavaScript请求对应的JavaScript文件以及与所述JavaScript文件存在依赖关系的文件集合,则将所述JavaScript文件和所述文件集合发送到所述客户端。
所述客户端,用于向所述服务器端发送JavaScript请求,接收来自所述服务器端的JavaScript文件。
优选地,所述服务器端,还用于对所述查找到的JavaScript文件和文件集合进行压缩处理。
本申请包括以下优点,通过获取JavaScript文件之间的依赖关系,向客户端发送与JavaScript请求对应的JavaScript文件以及与该JavaScript文件存在依赖关系的文件集合,从而,减少了网页上资源的请求数,达到提高页面载入速度、加速网页下载的目的,提升了用户的使用体验。当然,实施本申请的任一产品并不一定需要同时达到以上所述的所有优点。
附图说明
为了更清楚地说明本申请或现有技术中的技术方案,下面将对本申请或现有技术描述中所需要使用的附图作简单的介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例一中的一种JavaScript文件的管理方法流程图;
图2为本申请实施例一中表示文件依赖关系的有向图;
图3为本申请实施例二中的一种JavaScript文件的管理方法流程图;
图4为本申请实施例三中的一种JavaScript文件的管理方法流程图;
图5为本申请实施例四中的一种JavaScript文件的管理方法流程图;
图6为本申请实施例五中的一种网络服务器结构示意图;
图7为本申请实施例六中的一种网络服务器结构示意图;
图8为本申请实施例七中的一种网络服务器结构示意图;
图9为本申请实施例八中的一种网络服务器结构示意图;
图10为本申请实施例九中的一种JavaScript文件的管理系统结构示意图。
具体实施方式
本申请的主要思想包括,在JavaScript文件中以注释的方式编写与其他JavaScript文件的依赖关系,当接收到JavaScript请求时,服务器端查找该JavaScript请求对应的JavaScript文件以及与该JavaScript文件存在依赖关系的文件集合,将JavaScript文件以及与该JavaScript文件存在依赖关系的文件集合进行合并,包括去除其中重复的JavaScript文件以及压缩处理,并将压缩后的文件返回给客户端。
由于大多数JavaScript的请求存在于网站的页面中,本申请还提供一个页面组件,将相互之间没有依赖关系的多个JavaScript请求,按照约定的规范合并成一个URL,最大程度上地减少页面上的JavaScript请求数。此外,还可以将JavaScript请求置于页面的底部,加速页面的下载。
下面将结合本申请中的附图,对本申请中的技术方案进行清楚、完整的描述,显然,所描述的实施例是本申请的一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动的前提下所获得的所有其他实施例,都属于本申请保护的范围。
如图1所示,为本申请实施例一中的一种JavaScript文件的管理方法流程图,包括以下步骤:
步骤101,接收来自客户端的JavaScript请求,根据该JavaScript请求对应的URL(Uniform Resource Locator,统一资源定位符)查询缓存中是否存在与该URL对应的JavaScript文件。
如果缓存中存在与URL对应的JavaScript文件,则执行步骤102;如果缓存中不存在与URL对应的JavaScript文件,则执行步骤103。
具体地,服务器端的缓存中可以包含一个或多个JavaScript文件,以及各个JavaScript文件对应的URL。服务器端接收到来自客户端的JavaScript请求,可以直接在缓存中根据URL查找对应的JavaScript文件。
步骤102,从缓存中取出JavaScript文件,将该JavaScript文件发送到客户端。
步骤103,解析JavaScript请求,获取该JavaScript请求对应的文件数组。
其中,文件数组JavaScript请求对应的一个或多个JavaScript文件。
步骤104,根据文件数组遍历文件依赖关系结构图,查找JavaScript请求对应的JavaScript文件以及与该JavaScript文件存在依赖关系的文件集合。如果查找到JavaScript请求对应的JavaScript文件以及与该JavaScript文件存在依赖关系的文件集合,则执行步骤105;如果查找不到JavaScript请求对应的JavaScript文件以及与该JavaScript文件存在依赖关系的文件集合,则执行步骤106。
具体地,文件依赖关系结构图用于表示不同的JavaScript文件之间的依赖关系,可以通过有向图的形式表示,如图2所示,其中,application.js依赖tool.js、util.js和helper.js,tool.js和util.js均依赖common1.js,util.js和helper.js均依赖commin2.js,commin1.js和commin2.js均依赖base.js。
本申请实施例可以在JavaScript文件中以注释的方式编写与其他JavaScript文件的依赖关系。例如,在a.js文件头部定义a.js文件依赖b.js文件和c.js文件,具体的依赖编码如下所示:
Figure B2009102498400D0000071
服务器端可以在JavaScript文件依赖关系有向图中,使用广度优先算法遍历出客户端请求的JavaScript文件依赖的所有JavaScript文件的集合。例如,服务器端查找到a.js文件时,可以根据a.js文件与b.js文件以及c.js文件之间的依赖关系,获取b.js文件和c.js文件的内容,在a.js文件返回的内容中加入了b.js文件和c.js文件的内容。
步骤105,对JavaScript文件和文件集合进行压缩处理,并将压缩后的JavaScript文件发送到客户端。
具体地,客户端通过浏览器访问网站页面时,大部分的响应时间用于客户端下载各种页面资源,由于网站越来越复杂,页面上的各种资源也越来越多,通过对JavaScript文件和文件集合进行压缩处理,可以减少页面上的HTTP请求数;同时,由于压缩了JavaScript文件,也减少了页面的容量大小。
步骤106,向客户端返回错误信息。
具体地,服务器端未查找到任何JavaScript文件时,向客户端的浏览器返回404状态码,表示客户端请求的资源未找到。
本申请包括以下优点,通过获取JavaScript文件之间的依赖关系,向客户端发送与JavaScript请求对应的JavaScript文件以及与该JavaScript文件存在依赖关系的文件集合,从而,减少了网页上资源的请求数,达到提高页面载入速度、加速网页下载的目的,提升了用户的使用体验。当然,实施本申请的任一产品并不一定需要同时达到以上所述的所有优点。
另外,在具体的实施过程中,还可以将JavaScript请求置于页面底部,在页面其他资源下载完毕后才会下载JavaScript文件,从而加快网页下载的下载速度。
如图3所示,为本申请实施例二中的一种JavaScript文件的管理方法流程图,包括以下步骤:
步骤201,将JavaScript文件的发布目录与工作目录比较,判断该发布目录是否有文件更新。如果没有文件更新,则执行步骤202;如果有文件更新,则执行步骤203。
具体地,服务器端启动时,如果发现发布目录中有JavaScript文件更新,则将发布目录中的JavaScript文件加载入缓存,并校验载入的JavaScript文件是否正确且稳定,如果该JavaScript文件有错误或者不稳定,则报错;如果该JavaScript文件正确且稳定,则将发布目录中的JavaScript文件复制到工作目录,服务器端启动成功。在服务器端下次启动时,如果发布目录下没有更新的JavaScript文件,则服务器端将工作目录中的JavaScript文件复制到缓存,保证JavaScript文件的正确和稳定。
服务器端运行时,如果发现发布目录中有JavaScript文件更新,则将发布目录中的JavaScript文件加载入缓存,并校验载入的JavaScript文件是否正确且稳定,如果该JavaScript文件有错误或者不稳定,则报错,并提供更新之前的JavaScript文件;如果该JavaScript文件正确且稳定,则提供更新之后的JavaScript文件,并将发布目录中的JavaScript文件复制到工作目录。
步骤202,将工作目录中的JavaScript文件载入缓存中。
步骤203,将发布目录中的JavaScript文件载入缓存中,并将该发布目录中的JavaScript文件复制到工作目录。
步骤204,解析并保存缓存中的JavaScript文件的依赖关系信息,根据该依赖关系信息校验该JavaScript文件依赖的文件是否存在。
如果JavaScript文件依赖的文件不存在,则执行步骤205;如果JavaScript文件依赖的文件存在,则执行步骤206。
具体地,服务器端保存每个JavaScript文件的依赖关系信息,保存的数据结构可以为有向图,该有向图可以使用邻接矩阵表示。有向图可参照图2所示,其中,application.js依赖tool.js、util.js和helper.js,tool.js和util.js均依赖common1.js,util.js和helper.js均依赖commin2.js,commin1.js和commin2.js均依赖base.js。
本申请实施例可以在JavaScript文件中以注释的方式编写与其他JavaScript文件的依赖关系。例如,在a.js文件头部定义a.js文件依赖b.js文件和c.js文件,具体的依赖编码如下所示:
Figure B2009102498400D0000091
服务器端可以在JavaScript文件依赖关系有向图中,使用广度优先算法遍历出客户端请求的JavaScript文件依赖的所有JavaScript文件的集合。例如,服务器端查找到a.js文件时,可以根据a.js文件与b.js文件以及c.js文件之间的依赖关系,获取b.js文件和c.js文件的内容,在a.js文件返回的内容中加入了b.js文件和c.js文件的内容。
步骤205,显示异常信息,终止系统初始化进程。
具体地,当JavaScript文件依赖的文件不存在时,系统马上抛出异常,并终止初始化进程。
步骤206,校验依赖关系信息是否存在环路依赖,如果存在环路依赖,则执行步骤205;如果不存在环路依赖,则执行步骤207。
具体地,可以使用回溯法校验JavaScript文件的依赖关系信息中是否存在环路依赖。例如,如果在a.js文件头部定义a.js文件依赖b.js文件,在b.js文件头部定义b.js文件依赖a.js文件,则a.js文件与b.js文件之间存在环路依赖。
步骤207,压缩缓存中的JavaScript文件。
具体地,服务器端可以删除JavaScript文件中的注释、空行和空格,将JavaScript文件中的全部代码调整为一行,从而实现对JavaScript文件的压缩。
本申请包括以下优点,通过获取JavaScript文件之间的依赖关系,向客户端发送与JavaScript请求对应的JavaScript文件以及与该JavaScript文件存在依赖关系的文件集合,从而,减少了网页上资源的请求数,达到提高页面载入速度、加速网页下载的目的,提升了用户的使用体验。当然,实施本申请的任一产品并不一定需要同时达到以上所述的所有优点。
另外,在具体的实施过程中,还可以将JavaScript请求置于页面底部,在页面其他资源下载完毕后才会下载JavaScript文件,从而加快网页下载的下载速度。
如图4所示,为本申请实施例三中的一种JavaScript文件的管理方法流程图,包括以下步骤:
步骤301,服务器启动,检测发布目录中是否有JavaScript文件更新;如果发布目录中有JavaScript文件更新,则执行步骤302;如果发布目录中没有JavaScript文件更新,则执行步骤305。
步骤302,服务器将发布目录中的JavaScript文件加载入缓存,并校验载入的JavaScript文件是否正确且稳定;如果载入的JavaScript文件不正确或者不稳定,则执行步骤303;如果载入的JavaScript文件正确且稳定,则执行步骤304。
步骤303,服务器报错。
步骤304,服务器将发布目录中的JavaScript文件复制到工作目录,启动成功。
步骤305,服务器将工作目录中的JavaScript文件载入缓存中。
步骤306,服务器解析并保存缓存中的JavaScript文件的依赖关系信息,根据该依赖关系信息校验该JavaScript文件依赖的文件是否存在。
如果JavaScript文件依赖的文件不存在,则执行步骤307;如果JavaScript文件依赖的文件存在,则执行步骤308。
具体地,服务器端保存每个JavaScript文件的依赖关系信息,保存的数据结构可以为有向图,该有向图可以使用邻接矩阵表示。有向图可参照图2所示,其中,application.js依赖tool.js、util.is和helper.js,tool.js和util.js均依赖common1.js,util.js和helper.js均依赖commin2.js,commin1.js和commin2.js均依赖base.js。
本申请实施例可以在JavaScript文件中以注释的方式编写与其他JavaScript文件的依赖关系。例如,在a.js文件头部定义a.js文件依赖b.js文件和c.js文件,具体的依赖编码如下所示:
服务器端可以在JavaScript文件依赖关系有向图中,使用广度优先算法遍历出客户端请求的JavaScript文件依赖的所有JavaScript文件的集合。例如,服务器端查找到a.js文件时,可以根据a.js文件与b.js文件以及c.js文件之间的依赖关系,获取b.js文件和c.js文件的内容,在a.js文件返回的内容中加入了b.js文件和c.js文件的内容。
步骤307,服务器显示异常信息,终止系统初始化进程。
具体地,当JavaScript文件依赖的文件不存在时,系统马上抛出异常,并终止初始化进程。
步骤308,服务器校验依赖关系信息是否存在环路依赖,如果存在环路依赖,则执行步骤307;如果不存在环路依赖,则执行步骤309。
具体地,可以使用回溯法校验JavaScript文件的依赖关系信息中是否存在环路依赖。例如,如果在a.js文件头部定义a.js文件依赖b.js文件,在b.js文件头部定义b.js文件依赖a.js文件,则a.js文件与b.js文件之间存在环路依赖。
步骤309,服务器压缩缓存中的JavaScript文件。
具体地,服务器端可以删除JavaScript文件中的注释、空行和空格,将JavaScript文件中的全部代码调整为一行,从而实现对JavaScript文件的压缩。
本申请包括以下优点,通过获取JavaScript文件之间的依赖关系,向客户端发送与JavaScript请求对应的JavaScript文件以及与该JavaScript文件存在依赖关系的文件集合,从而,减少了网页上资源的请求数,达到提高页面载入速度、加速网页下载的目的,提升了用户的使用体验。当然,实施本申请的任一产品并不一定需要同时达到以上所述的所有优点。
另外,在具体的实施过程中,还可以将JavaScript请求置于页面底部,在页面其他资源下载完毕后才会下载JavaScript文件,从而加快网页下载的下载速度。
如图5所示,为本申请实施例四中的一种JavaScript文件的管理方法流程图,包括以下步骤:
步骤401,服务器运行时,检测发布目录中是否有JavaScript文件更新;如果发布目录中有JavaScript文件更新,则执行步骤402;如果发布目录中没有JavaScript文件更新,则结束流程。
步骤402,服务器将发布目录中的JavaScript文件加载入缓存,并校验载入的JavaScript文件是否正确且稳定;如果载入的JavaScript文件不正确或者不稳定,则执行步骤403;如果载入的JavaScript文件正确且稳定,则执行步骤404。
步骤403,服务器报错,提供更新之前的JavaScript文件。
步骤404,服务器提供更新之后的JavaScript文件,并将该发布目录中的JavaScript文件复制到工作目录。
步骤405,服务器解析并保存缓存中的JavaScript文件的依赖关系信息,根据该依赖关系信息校验该JavaScript文件依赖的文件是否存在。
如果JavaScript文件依赖的文件不存在,则执行步骤406;如果JavaScript文件依赖的文件存在,则执行步骤407。
具体地,服务器端保存每个JavaScript文件的依赖关系信息,保存的数据结构可以为有向图,该有向图可以使用邻接矩阵表示。有向图可参照图2所示,其中,application.js依赖tool.js、util.js和helper.js,tool.js和util.js均依赖common1.js,util.js和helper.js均依赖commin2.js,commin1.js和commin2.js均依赖base.js。
本申请实施例可以在JavaScript文件中以注释的方式编写与其他JavaScript文件的依赖关系。例如,在a.js文件头部定义a.js文件依赖b.js文件和c.js文件,具体的依赖编码如下所示:
Figure B2009102498400D0000131
服务器端可以在JavaScript文件依赖关系有向图中,使用广度优先算法遍历出客户端请求的JavaScript文件依赖的所有JavaScript文件的集合。例如,服务器端查找到a.js文件时,可以根据a.js文件与b.js文件以及c.js文件之间的依赖关系,获取b.js文件和c.js文件的内容,在a.js文件返回的内容中加入了b.js文件和c.js文件的内容。
步骤406,服务器显示异常信息,终止系统初始化进程。
具体地,当JavaScript文件依赖的文件不存在时,系统马上抛出异常,并终止初始化进程。
步骤407,服务器校验依赖关系信息是否存在环路依赖,如果存在环路依赖,则执行步骤406;如果不存在环路依赖,则执行步骤408。
具体地,可以使用回溯法校验JavaScript文件的依赖关系信息中是否存在环路依赖。例如,如果在a.js文件头部定义a.js文件依赖b.js文件,在b.js文件头部定义b.js文件依赖a.js文件,则a.js文件与b.js文件之间存在环路依赖。
步骤408,服务器压缩缓存中的JavaScript文件。
具体地,服务器端可以删除JavaScript文件中的注释、空行和空格,将JavaScript文件中的全部代码调整为一行,从而实现对JavaScript文件的压缩。
本申请包括以下优点,通过获取JavaScript文件之间的依赖关系,向客户端发送与JavaScript请求对应的JavaScript文件以及与该JavaScript文件存在依赖关系的文件集合,从而,减少了网页上资源的请求数,达到提高页面载入速度、加速网页下载的目的,提升了用户的使用体验。当然,实施本申请的任一产品并不一定需要同时达到以上所述的所有优点。
另外,在具体的实施过程中,还可以将JavaScript请求置于页面底部,在页面其他资源下载完毕后才会下载JavaScript文件,从而加快网页下载的下载速度。
本申请上述实施例提供了JavaScript文件的管理方法和应用场景,相应地,本申请还通过以下实施例提供了应用上述方法的装置和系统。
如图6所示,为本申请实施例五中的一种网络服务器结构示意图,包括:
接收模块510,用于接收来自客户端的JavaScript请求。
解析模块520,用于解析所述接收模块510接收到的JavaScript请求,获取所述JavaScript请求对应的文件数组。
其中,文件数组JavaScript请求对应的一个或多个JavaScript文件。
遍历模块530,用于根据所述解析模块520获取的文件数组遍历文件依赖关系结构图,查找所述JavaScript请求对应的JavaScript文件以及与所述JavaScript文件存在依赖关系的文件集合。
具体地,文件依赖关系结构图用于表示不同的JavaScript文件之间的依赖关系,可以通过有向图的形式表示,如图2所示,其中,application.js依赖tool.js、util.js和helper.js,tool.js和util.js均依赖common1.js,util.js和helper.js均依赖commin2.js,commin1.js和commin2.js均依赖base.js。
本申请实施例可以在JavaScript文件中以注释的方式编写与其他JavaScript文件的依赖关系。例如,在a.js文件头部定义a.js文件依赖b.js文件和c.js文件,具体的依赖编码如下所示:
Figure B2009102498400D0000151
遍历模块530可以在JavaScript文件依赖关系有向图中,使用广度优先算法遍历出客户端请求的JavaScript文件依赖的所有JavaScript文件的集合。例如,遍历模块530查找到a.js文件时,可以根据a.js文件与b.js文件以及c.js文件之间的依赖关系,获取b.js文件和c.js文件的内容,在a.js文件返回的内容中加入了b.js文件和c.js文件的内容。
发送模块540,用于在所述遍历模块530查找到所述JavaScript请求对应的JavaScript文件以及与所述JavaScript文件存在依赖关系的文件集合时,对所述JavaScript文件和所述文件集合进行压缩处理,并将压缩后的JavaScript文件发送到所述客户端。
具体地,客户端通过浏览器访问网站页面时,大部分的响应时间用于客户端下载各种页面资源,由于网站越来越复杂,页面上的各种资源也越来越多,通过对JavaScript文件和文件集合进行压缩处理,可以减少页面上的HTTP请求数;同时,由于压缩了JavaScript文件,也减少了页面的容量大小。
此外,当遍历模块530查找不到JavaScript请求对应的JavaScript文件以及与该JavaScript文件存在依赖关系的文件集合时,发送模块530还可以向客户端返回错误信息。
具体地,当遍历模块530未查找到任何JavaScript文件时,发送模块540向客户端的浏览器返回404状态码,表示客户端请求的资源未找到。
本申请包括以下优点,通过获取JavaScript文件之间的依赖关系,向客户端发送与JavaScript请求对应的JavaScript文件以及与该JavaScript文件存在依赖关系的文件集合,从而,减少了网页上资源的请求数,达到提高页面载入速度、加速网页下载的目的,提升了用户的使用体验。当然,实施本申请的任一产品并不一定需要同时达到以上所述的所有优点。
另外,在具体的实施过程中,还可以将JavaScript请求置于页面底部,在页面其他资源下载完毕后才会下载JavaScript文件,从而加快网页下载的下载速度。
如图7所示,为本申请实施例六中的一种网络服务器结构示意图,该网络服务器600包括:
判断模块610,用于将JavaScript文件的发布目录与工作目录比较,判断所述发布目录是否有文件更新。
具体地,网络服务器600启动时,如果判断模块610发现发布目录中有JavaScript文件更新,则将发布目录中的JavaScript文件加载入缓存,并校验载入的JavaScript文件是否正确且稳定,如果该JavaScript文件有错误或者不稳定,则报错;如果该JavaScript文件正确且稳定,则将发布目录中的JavaScript文件复制到工作目录,网络服务器600启动成功。在网络服务器600下次启动时,如果发布目录下没有更新的JavaScript文件,则网络服务器600将工作目录中的JavaScript文件复制到缓存,保证JavaScript文件的正确和稳定。
网络服务器600运行时,如果判断模块610发现发布目录中有JavaScript文件更新,则将发布目录中的JavaScript文件加载入缓存,并校验载入的JavaScript文件是否正确且稳定,如果该JavaScript文件有错误或者不稳定,则报错,并提供更新之前的JavaScript文件;如果该JavaScript文件正确且稳定,则提供更新之后的JavaScript文件,并将发布目录中的JavaScript文件复制到工作目录。
存储模块620,用于在所述判断模块610判断所述发布目录没有文件更新时,将所述工作目录中的JavaScript文件载入所述缓存中;在所述判断模块判断所述发布目录有文件更新时,将所述发布目录中的JavaScript文件载入所述缓存中,并将所述发布目录中的JavaScript文件复制到所述工作目录。
校验模块630,用于解析并保存所述存储模块620载入到缓存中的JavaScript文件的依赖关系信息,根据所述依赖关系信息校验所述JavaScript文件依赖的文件是否存在。
具体地,网络服务器600保存每个JavaScript文件的依赖关系信息,保存的数据结构可以为有向图,该有向图可以使用邻接矩阵表示。有向图可参照图2所示,其中,application.js依赖tool.js、util.js和helper.js,tool.js和util.js均依赖common1.js,util.js和helper.js均依赖commin2.js,commin1.js和commin2.js均依赖base.js。
本申请实施例可以在JavaScript文件中以注释的方式编写与其他JavaScript文件的依赖关系。例如,在a.js文件头部定义a.js文件依赖b.js文件和c.js文件,具体的依赖编码如下所示:
Figure B2009102498400D0000171
校验模块630可以在JavaScript文件依赖关系有向图中,使用广度优先算法遍历出客户端请求的JavaScript文件依赖的所有JavaScript文件的集合。例如,校验模块630查找到a.js文件时,可以根据a.js文件与b.js文件以及c.js文件之间的依赖关系,获取b.js文件和c.js文件的内容,在a.js文件返回的内容中加入了b.js文件和c.js文件的内容。
上述校验模块630,还用于在所述JavaScript文件依赖的文件存在时,校验所述依赖关系信息是否存在环路依赖。
具体地,校验模块630可以使用回溯法校验JavaScript文件的依赖关系信息中是否存在环路依赖。例如,如果在a.js文件头部定义a.js文件依赖b.js文件,在b.js文件头部定义b.js文件依赖a.js文件,则a.js文件与b.js文件之间存在环路依赖。
处理模块640,用于在所述校验模块630判断所述JavaScript文件依赖的文件不存在时,显示异常信息,终止系统初始化进程。
上述处理模块640,用于在所述校验模块630判断所述依赖关系信息存在环路依赖时,显示异常信息,终止系统初始化进程;在所述校验模块判断所述依赖关系信息不存在环路依赖时,压缩所述缓存中的JavaScript文件。
接收模块650,用于接收来自客户端的JavaScript请求。
查询模块660,用于根据所述接收模块650接收到的JavaScript请求对应的URL查询缓存中是否存在与所述URL对应的JavaScript文件。
解析模块670,用于在所述查询模块660查询到所述缓存中不存在与所述URL对应的JavaScript文件时,解析所述接收模块650接收到的JavaScript请求,获取所述JavaScript请求对应的文件数组。
遍历模块680,用于根据所述解析模块670获取的文件数组遍历文件依赖关系结构图,查找所述JavaScript请求对应的JavaScript文件以及与所述JavaScript文件存在依赖关系的文件集合。
发送模块690,用于在所述遍历模块680查找到所述JavaScript请求对应的JavaScript文件以及与所述JavaScript文件存在依赖关系的文件集合时,对所述JavaScript文件和所述文件集合进行压缩处理,并将压缩后的JavaScript文件发送到所述客户端。
上述发送模块690,还用于在所述查询模块660查询到所述缓存中存在与所述URL对应的JavaScript文件时,从所述缓存中取出所述JavaScript文件,将所述JavaScript文件发送到所述客户端。
本申请包括以下优点,通过获取JavaScript文件之间的依赖关系,向客户端发送与JavaScript请求对应的JavaScript文件以及与该JavaScript文件存在依赖关系的文件集合,从而,减少了网页上资源的请求数,达到提高页面载入速度、加速网页下载的目的,提升了用户的使用体验。当然,实施本申请的任一产品并不一定需要同时达到以上所述的所有优点。
另外,在具体的实施过程中,还可以将JavaScript请求置于页面底部,在页面其他资源下载完毕后才会下载JavaScript文件,从而加快网页下载的下载速度。
如图8所示,为本申请实施例七中的一种网络服务器结构示意图,该网络服务器700包括:
检测模块701,用于在网络服务器700启动时,检测发布目录中是否有JavaScript文件更新。
判断模块702,用于在检测模块701检测到发布目录中有JavaScript文件更新时,将发布目录中的JavaScript文件加载入缓存,并校验载入的JavaScript文件是否正确且稳定。
存储模块703,用于在检测模块701检测到发布目录中没有JavaScript文件更新时,将工作目录中的JavaScript文件载入缓存中;在判断模块702判断载入的JavaScript文件正确且稳定时,将发布目录中的JavaScript文件复制到工作目录。
报错模块704,用于在判断模块702判断载入的JavaScript文件不正确或者不稳定时报错。
校验模块705,用于解析并保存所述存储模块703载入到缓存中的JavaScript文件的依赖关系信息,根据所述依赖关系信息校验所述JavaScript文件依赖的文件是否存在。
具体地,网络服务器700保存每个JavaScript文件的依赖关系信息,保存的数据结构可以为有向图,该有向图可以使用邻接矩阵表示。有向图可参照图2所示,其中,application.js依赖tool.js、util.js和helper.js,tool.js和util.js均依赖common1.js,util.js和helper.js均依赖commin2.js,commin1.js和commin2.js均依赖base.js。
本申请实施例可以在JavaScript文件中以注释的方式编写与其他JavaScript文件的依赖关系。例如,在a.js文件头部定义a.js文件依赖b.js文件和c.js文件,具体的依赖编码如下所示:
Figure B2009102498400D0000201
校验模块705可以在JavaScript文件依赖关系有向图中,使用广度优先算法遍历出客户端请求的JavaScript文件依赖的所有JavaScript文件的集合。例如,校验模块705查找到a.js文件时,可以根据a.js文件与b.js文件以及c.js文件之间的依赖关系,获取b.js文件和c.js文件的内容,在a.js文件返回的内容中加入了b.js文件和c.js文件的内容。
上述校验模块705,还用于在所述JavaScript文件依赖的文件存在时,校验所述依赖关系信息是否存在环路依赖。
具体地,校验模块705可以使用回溯法校验JavaScript文件的依赖关系信息中是否存在环路依赖。例如,如果在a.js文件头部定义a.js文件依赖b.js文件,在b.js文件头部定义b.js文件依赖a.js文件,则a.js文件与b.js文件之间存在环路依赖。
处理模块706,用于在所述校验模块705判断所述JavaScript文件依赖的文件不存在时,显示异常信息,终止系统初始化进程。
上述处理模块706,用于在所述校验模块705判断所述依赖关系信息存在环路依赖时,显示异常信息,终止系统初始化进程;在所述校验模块判断所述依赖关系信息不存在环路依赖时,压缩所述缓存中的JavaScript文件。
接收模块707,用于接收来自客户端的JavaScript请求。
查询模块708,用于根据所述接收模块707接收到的JavaScript请求对应的URL查询缓存中是否存在与所述URL对应的JavaScript文件。
解析模块709,用于在所述查询模块708查询到所述缓存中不存在与所述URL对应的JavaScript文件时,解析所述接收模块707接收到的JavaScript请求,获取所述JavaScript请求对应的文件数组。
遍历模块710,用于根据所述解析模块709获取的文件数组遍历文件依赖关系结构图,查找所述JavaScript请求对应的JavaScript文件以及与所述JavaScript文件存在依赖关系的文件集合。
发送模块711,用于在所述遍历模块710查找到所述JavaScript请求对应的JavaScript文件以及与所述JavaScript文件存在依赖关系的文件集合时,对所述JavaScript文件和所述文件集合进行压缩处理,并将压缩后的JavaScript文件发送到所述客户端。
上述发送模块711,还用于在所述查询模块708查询到所述缓存中存在与所述URL对应的JavaScript文件时,从所述缓存中取出所述JavaScript文件,将所述JavaScript文件发送到所述客户端。
本申请包括以下优点,通过获取JavaScript文件之间的依赖关系,向客户端发送与JavaScript请求对应的JavaScript文件以及与该JavaScript文件存在依赖关系的文件集合,从而,减少了网页上资源的请求数,达到提高页面载入速度、加速网页下载的目的,提升了用户的使用体验。当然,实施本申请的任一产品并不一定需要同时达到以上所述的所有优点。
另外,在具体的实施过程中,还可以将JavaScript请求置于页面底部,在页面其他资源下载完毕后才会下载JavaScript文件,从而加快网页下载的下载速度。
如图9所示,为本申请实施例八中的一种网络服务器结构示意图,该网络服务器800包括:
检测模块801,用于在网络服务器800运行时,检测发布目录中是否有JavaScript文件更新。
判断模块802,用于在检测模块801检测到发布目录中有JavaScript文件更新时,将发布目录中的JavaScript文件加载入缓存,并校验载入的JavaScript文件是否正确且稳定。
存储模块803,用于在判断模块802判断载入的JavaScript文件正确且稳定时,将发布目录中的JavaScript文件复制到工作目录。
报错模块804,用于在判断模块802判断载入的JavaScript文件不正确或者不稳定时报错。
校验模块805,用于解析并保存所述存储模块803载入到缓存中的JavaScript文件的依赖关系信息,根据所述依赖关系信息校验所述JavaScript文件依赖的文件是否存在。
具体地,网络服务器800保存每个JavaScript文件的依赖关系信息,保存的数据结构可以为有向图,该有向图可以使用邻接矩阵表示。有向图可参照图2所示,其中,application.js依赖tool.js、util.js和helper.js,tool.js和util.js均依赖common1.js,util.js和helper.js均依赖commin2.js,commin1.js和commin2.js均依赖base.js。
本申请实施例可以在JavaScript文件中以注释的方式编写与其他JavaScript文件的依赖关系。例如,在a.js文件头部定义a.js文件依赖b.js文件和c.js文件,具体的依赖编码如下所示:
校验模块805可以在JavaScript文件依赖关系有向图中,使用广度优先算法遍历出客户端请求的JavaScript文件依赖的所有JavaScript文件的集合。例如,校验模块805查找到a.js文件时,可以根据a.js文件与b.js文件以及c.js文件之间的依赖关系,获取b.js文件和c.js文件的内容,在a.js文件返回的内容中加入了b.js文件和c.js文件的内容。
上述校验模块805,还用于在所述JavaScript文件依赖的文件存在时,校验所述依赖关系信息是否存在环路依赖。
具体地,校验模块805可以使用回溯法校验JavaScript文件的依赖关系信息中是否存在环路依赖。例如,如果在a.js文件头部定义a.js文件依赖b.js文件,在b.js文件头部定义b.js文件依赖a.js文件,则a.js文件与b.js文件之间存在环路依赖。
处理模块806,用于在所述校验模块805判断所述JavaScript文件依赖的文件不存在时,显示异常信息,终止系统初始化进程。
上述处理模块806,用于在所述校验模块805判断所述依赖关系信息存在环路依赖时,显示异常信息,终止系统初始化进程;在所述校验模块判断所述依赖关系信息不存在环路依赖时,压缩所述缓存中的JavaScript文件。
接收模块807,用于接收来自客户端的JavaScript请求。
查询模块808,用于根据所述接收模块807接收到的JavaScript请求对应的URL查询缓存中是否存在与所述URL对应的JavaScript文件。
解析模块809,用于在所述查询模块808查询到所述缓存中不存在与所述URL对应的JavaScript文件时,解析所述接收模块807接收到的JavaScript请求,获取所述JavaScript请求对应的文件数组。
遍历模块810,用于根据所述解析模块809获取的文件数组遍历文件依赖关系结构图,查找所述JavaScript请求对应的JavaScript文件以及与所述JavaScript文件存在依赖关系的文件集合。
发送模块811,用于在所述遍历模块810查找到所述JavaScript请求对应的JavaScript文件以及与所述JavaScript文件存在依赖关系的文件集合时,对所述JavaScript文件和所述文件集合进行压缩处理,并将压缩后的JavaScript文件发送到所述客户端。
上述发送模块811,还用于在所述查询模块808查询到所述缓存中存在与所述URL对应的JavaScript文件时,从所述缓存中取出所述JavaScript文件,将所述JavaScript文件发送到所述客户端。
本申请包括以下优点,通过获取JavaScript文件之间的依赖关系,向客户端发送与JavaScript请求对应的JavaScript文件以及与该JavaScript文件存在依赖关系的文件集合,从而,减少了网页上资源的请求数,达到提高页面载入速度、加速网页下载的目的,提升了用户的使用体验。当然,实施本申请的任一产品并不一定需要同时达到以上所述的所有优点。
另外,在具体的实施过程中,还可以将JavaScript请求置于页面底部,在页面其他资源下载完毕后才会下载JavaScript文件,从而加快网页下载的下载速度。
如图10所示,为本申请实施例九中的一种JavaScript文件的管理系统结构示意图,包括客户端910和服务器端920,其中,
客户端910,用于向所述服务器端920发送JavaScript请求,接收来自所述服务器端920的JavaScript文件。
服务器端920,用于接收来自客户端910的JavaScript请求,根据所述JavaScript请求对应的URL查询缓存中是否存在与所述URL对应的JavaScript文件;如果所述缓存中不存在与所述URL对应的JavaScript文件,则解析所述JavaScript请求,获取所述JavaScript请求对应的文件数组,根据所述文件数组遍历文件依赖关系结构图,查找所述JavaScript请求对应的JavaScript文件以及与所述JavaScript文件存在依赖关系的文件集合;如果查找到所述JavaScript请求对应的JavaScript文件以及与所述JavaScript文件存在依赖关系的文件集合,则对所述JavaScript文件和所述文件集合进行压缩处理,并将压缩后的JavaScript文件发送到所述客户端910。
上述服务器端920,还用于在查询到所述缓存中存在与所述URL对应的JavaScript文件时,从所述缓存中取出所述JavaScript文件,将所述JavaScript文件发送到所述客户端910。
本申请包括以下优点,通过获取JavaScript文件之间的依赖关系,向客户端发送与JavaScript请求对应的JavaScript文件以及与该JavaScript文件存在依赖关系的文件集合,从而,减少了网页上资源的请求数,达到提高页面载入速度、加速网页下载的目的,提升了用户的使用体验。当然,实施本申请的任一产品并不一定需要同时达到以上所述的所有优点。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到本发明可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台终端设备(可以是手机,个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视本发明的保护范围。
本领域技术人员可以理解实施例中的装置中的模块可以按照实施例描述进行分布于实施例的装置中,也可以进行相应变化位于不同于本实施例的一个或多个装置中。上述实施例的模块可以集成于一体,也可以分离部署;可以合并为一个模块,也可以进一步拆分成多个子模块。上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
以上公开的仅为本发明的几个具体实施例,但是,本发明并非局限于此,任何本领域的技术人员能思之的变化都应落入本发明的保护范围。

Claims (11)

1.一种JavaScript文件的管理方法,其特征在于,包括以下步骤:
接收并解析来自客户端的JavaScript请求,获取所述JavaScript请求对应的文件数组,根据所述文件数组遍历文件依赖关系结构图,查找所述JavaScript请求对应的JavaScript文件以及与所述JavaScript文件存在依赖关系的文件集合;
如果查找到所述JavaScript请求对应的JavaScript文件以及与所述JavaScript文件存在依赖关系的文件集合,则将所述JavaScript文件和所述文件集合发送到所述客户端。
2.如权利要求1所述的方法,其特征在于,所述将JavaScript文件和文件集合发送到客户端之前,还包括:
对所述查找到的JavaScript文件和文件集合进行压缩处理。
3.如权利要求1所述的方法,其特征在于,还包括:
将JavaScript文件的发布目录与工作目录比较,判断所述发布目录是否有文件更新,如果没有文件更新,则将所述工作目录中的JavaScript文件载入所述缓存中;如果有文件更新,则将所述发布目录中的JavaScript文件载入所述缓存中,并将所述发布目录中的JavaScript文件复制到所述工作目录;
解析并保存所述缓存中的JavaScript文件的依赖关系信息,根据所述依赖关系信息校验所述JavaScript文件依赖的文件是否存在;
如果所述JavaScript文件依赖的文件不存在,则显示异常信息,终止系统初始化进程。
4.如权利要求3所述的方法,其特征在于,所述根据依赖关系信息校验JavaScript文件依赖的文件是否存在之后,还包括:
如果所述JavaScript文件依赖的文件存在,则校验所述依赖关系信息是否存在环路依赖,如果存在环路依赖,则显示异常信息,终止系统初始化进程;如果不存在环路依赖,则压缩所述缓存中的JavaScript文件。
5.如权利要求1所述的方法,其特征在于,在接收来自客户端的JavaScript请求之后还包括:根据所述JavaScript请求对应的统一资源定位符URL查询缓存中是否存在与所述URL对应的JavaScript文件,如果所述缓存中不存在与所述URL对应的JavaScript文件,则解析所述JavaScript请求,获取所述JavaScript请求对应的文件数组。
6.一种网络服务器,其特征在于,包括:
接收模块,用于接收来自客户端的JavaScript请求;
解析模块,用于解析所述接收模块接收到的JavaScript请求,获取所述JavaScript请求对应的文件数组;
遍历模块,用于根据所述解析模块获取的文件数组遍历文件依赖关系结构图,查找所述JavaScript请求对应的JavaScript文件以及与所述JavaScript文件存在依赖关系的文件集合;
发送模块,用于在所述遍历模块查找到所述JavaScript请求对应的JavaScript文件以及与所述JavaScript文件存在依赖关系的文件集合时,将所述JavaScript文件和所述文件集合发送到所述客户端。
7.如权利要求6所述的网络服务器,其特征在于,
所述发送模块,还用于对所述查找到的JavaScript文件和文件集合进行压缩处理。
8.如权利要求6所述的网络服务器,其特征在于,还包括:
判断模块,用于将JavaScript文件的发布目录与工作目录比较,判断所述发布目录是否有文件更新;
存储模块,用于在所述判断模块判断所述发布目录没有文件更新时,将所述工作目录中的JavaScript文件载入所述缓存中;在所述判断模块判断所述发布目录有文件更新时,将所述发布目录中的JavaScript文件载入所述缓存中,并将所述发布目录中的JavaScript文件复制到所述工作目录;
校验模块,用于解析并保存所述存储模块载入到缓存中的JavaScript文件的依赖关系信息,根据所述依赖关系信息校验所述JavaScript文件依赖的文件是否存在;
处理模块,用于在所述校验模块判断所述JavaScript文件依赖的文件不存在时,显示异常信息,终止系统初始化进程。
9.如权利要求8所述的网络服务器,其特征在于,
所述校验模块,还用于在所述JavaScript文件依赖的文件存在时,校验所述依赖关系信息是否存在环路依赖;
所述处理模块,用于在所述校验模块判断所述依赖关系信息存在环路依赖时,显示异常信息,终止系统初始化进程;在所述校验模块判断所述依赖关系信息不存在环路依赖时,压缩所述缓存中的JavaScript文件。
10.一种JavaScript文件的管理系统,包括客户端和服务器端,其特征在于,
所述服务器端,用于接收并解析来自所述客户端的JavaScript请求,获取所述JavaScript请求对应的文件数组,根据所述文件数组遍历文件依赖关系结构图,查找所述JavaScript请求对应的JavaScript文件以及与所述JavaScript文件存在依赖关系的文件集合;如果查找到所述JavaScript请求对应的JavaScript文件以及与所述JavaScript文件存在依赖关系的文件集合,则将所述JavaScript文件和所述文件集合发送到所述客户端。
所述客户端,用于向所述服务器端发送JavaScript请求,接收来自所述服务器端的JavaScript文件。
11.如权利要求10所述的系统,其特征在于,
所述服务器端,还用于对所述查找到的JavaScript文件和文件集合进行压缩处理。
CN2009102498400A 2009-11-27 2009-11-27 一种JavaScript文件的管理方法、装置和系统 Pending CN102081633A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN2009102498400A CN102081633A (zh) 2009-11-27 2009-11-27 一种JavaScript文件的管理方法、装置和系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN2009102498400A CN102081633A (zh) 2009-11-27 2009-11-27 一种JavaScript文件的管理方法、装置和系统

Publications (1)

Publication Number Publication Date
CN102081633A true CN102081633A (zh) 2011-06-01

Family

ID=44087599

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2009102498400A Pending CN102081633A (zh) 2009-11-27 2009-11-27 一种JavaScript文件的管理方法、装置和系统

Country Status (1)

Country Link
CN (1) CN102081633A (zh)

Cited By (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102521266A (zh) * 2011-11-18 2012-06-27 深圳中兴网信科技有限公司 一种实现Javascript文件动态压缩与合并方法
CN103020155A (zh) * 2012-11-23 2013-04-03 中国电信股份有限公司云计算分公司 一种Web前端资源请求处理方法及装置
CN103139298A (zh) * 2013-02-01 2013-06-05 北京京东世纪贸易有限公司 一种传输网络数据的方法和装置
CN103838720A (zh) * 2012-11-20 2014-06-04 腾讯科技(深圳)有限公司 页面文件载入执行方法和装置
CN104283947A (zh) * 2014-09-28 2015-01-14 深圳市中科无软件有限公司 Java script动态合并服务器及其工作过程
CN104573412A (zh) * 2013-10-16 2015-04-29 北京航天在线网络科技有限公司 防止拷贝网页文字内容的方法和装置
CN104980464A (zh) * 2014-04-08 2015-10-14 北京奇虎科技有限公司 一种网络请求处理方法、网络服务器和网络系统
CN106020891A (zh) * 2016-05-25 2016-10-12 大唐网络有限公司 页面加载的方法和装置
CN106293855A (zh) * 2016-08-23 2017-01-04 上海创景计算机系统有限公司 依赖文件的载入方法
CN106294777A (zh) * 2016-08-12 2017-01-04 福建天晴数码有限公司 浏览器脚本的缓存方法及系统
CN106547527A (zh) * 2015-09-22 2017-03-29 阿里巴巴集团控股有限公司 一种JavaScript文件构建方法及装置
CN106570041A (zh) * 2015-10-12 2017-04-19 北京国双科技有限公司 拼接脚本文件的方法和装置
CN108259542A (zh) * 2016-12-29 2018-07-06 腾讯科技(深圳)有限公司 资源的传输方法和装置
WO2018176812A1 (zh) * 2017-03-31 2018-10-04 武汉斗鱼网络科技有限公司 静态资源发布方法及装置
CN109145236A (zh) * 2017-06-28 2019-01-04 艺龙网信息技术(北京)有限公司 页面文件处理方法、装置及系统
CN109344315A (zh) * 2018-09-27 2019-02-15 深圳互联先锋科技有限公司 一种网页图片的获取方法及系统
CN110989992A (zh) * 2019-10-30 2020-04-10 无线生活(北京)信息技术有限公司 资源处理方法及装置
CN111355784A (zh) * 2020-02-20 2020-06-30 北京字节跳动网络技术有限公司 一种处理请求信息的方法、装置、介质和电子设备

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101382958A (zh) * 2008-10-21 2009-03-11 深圳华为通信技术有限公司 网页加载方法和网页加载装置
CN101887376A (zh) * 2010-07-09 2010-11-17 中兴通讯股份有限公司 Widget引擎加载脚本插件的方法及Widget引擎
CN102214224A (zh) * 2011-06-15 2011-10-12 中兴通讯股份有限公司 一种访问网络资源的优化方法、网页浏览器和终端

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101382958A (zh) * 2008-10-21 2009-03-11 深圳华为通信技术有限公司 网页加载方法和网页加载装置
CN101887376A (zh) * 2010-07-09 2010-11-17 中兴通讯股份有限公司 Widget引擎加载脚本插件的方法及Widget引擎
CN102214224A (zh) * 2011-06-15 2011-10-12 中兴通讯股份有限公司 一种访问网络资源的优化方法、网页浏览器和终端

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
MARK DALRVMPLE: "《Objective-C基础教程》", 31 August 2009, 人民邮电出版社 *
刘贤斐,李明禄: "一种分布式编译系统的设计与实现", 《微计算机信息》 *

Cited By (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102521266A (zh) * 2011-11-18 2012-06-27 深圳中兴网信科技有限公司 一种实现Javascript文件动态压缩与合并方法
CN103838720A (zh) * 2012-11-20 2014-06-04 腾讯科技(深圳)有限公司 页面文件载入执行方法和装置
CN103838720B (zh) * 2012-11-20 2018-09-07 腾讯科技(深圳)有限公司 页面文件载入执行方法和装置
CN103020155A (zh) * 2012-11-23 2013-04-03 中国电信股份有限公司云计算分公司 一种Web前端资源请求处理方法及装置
CN103139298A (zh) * 2013-02-01 2013-06-05 北京京东世纪贸易有限公司 一种传输网络数据的方法和装置
CN104573412A (zh) * 2013-10-16 2015-04-29 北京航天在线网络科技有限公司 防止拷贝网页文字内容的方法和装置
CN104573412B (zh) * 2013-10-16 2019-04-23 航天信息软件技术有限公司 防止拷贝网页文字内容的方法和装置
CN104980464A (zh) * 2014-04-08 2015-10-14 北京奇虎科技有限公司 一种网络请求处理方法、网络服务器和网络系统
CN104980464B (zh) * 2014-04-08 2019-07-23 北京奇虎科技有限公司 一种网络请求处理方法、网络服务器和网络系统
CN104283947A (zh) * 2014-09-28 2015-01-14 深圳市中科无软件有限公司 Java script动态合并服务器及其工作过程
CN106547527A (zh) * 2015-09-22 2017-03-29 阿里巴巴集团控股有限公司 一种JavaScript文件构建方法及装置
CN106570041A (zh) * 2015-10-12 2017-04-19 北京国双科技有限公司 拼接脚本文件的方法和装置
CN106020891A (zh) * 2016-05-25 2016-10-12 大唐网络有限公司 页面加载的方法和装置
CN106294777A (zh) * 2016-08-12 2017-01-04 福建天晴数码有限公司 浏览器脚本的缓存方法及系统
CN106293855A (zh) * 2016-08-23 2017-01-04 上海创景计算机系统有限公司 依赖文件的载入方法
CN108259542A (zh) * 2016-12-29 2018-07-06 腾讯科技(深圳)有限公司 资源的传输方法和装置
WO2018176812A1 (zh) * 2017-03-31 2018-10-04 武汉斗鱼网络科技有限公司 静态资源发布方法及装置
CN109145236A (zh) * 2017-06-28 2019-01-04 艺龙网信息技术(北京)有限公司 页面文件处理方法、装置及系统
CN109344315A (zh) * 2018-09-27 2019-02-15 深圳互联先锋科技有限公司 一种网页图片的获取方法及系统
CN110989992A (zh) * 2019-10-30 2020-04-10 无线生活(北京)信息技术有限公司 资源处理方法及装置
CN110989992B (zh) * 2019-10-30 2023-10-31 无线生活(北京)信息技术有限公司 资源处理方法及装置
CN111355784A (zh) * 2020-02-20 2020-06-30 北京字节跳动网络技术有限公司 一种处理请求信息的方法、装置、介质和电子设备
CN111355784B (zh) * 2020-02-20 2022-10-25 北京字节跳动网络技术有限公司 一种处理请求信息的方法、装置、介质和电子设备

Similar Documents

Publication Publication Date Title
CN102081633A (zh) 一种JavaScript文件的管理方法、装置和系统
CN106598673B (zh) 一种应用程序升级方法及系统
US10284686B2 (en) Server, client, system and method for preloading browsed page in browser
CN103678091A (zh) 应用软件崩溃数据的处理方法和装置
CN101656739B (zh) 组件更新方法、系统及设备
CN110162964B (zh) 一种文件篡改的检查方法、装置及系统
CN102567339A (zh) 一种获取起始页的方法、装置和系统
CN112416458A (zh) 基于ReactNative的预加载方法、装置、计算机设备及存储介质
CN112612982A (zh) 网页预加载方法、装置及计算机设备
CN112149035A (zh) 网站静态资源处理方法及装置
CN105701153A (zh) 一种读取网页资源的方法、装置及电子设备
CN103139298B (zh) 一种传输网络数据的方法和装置
CN111177600B (zh) 一种基于移动应用的内置网页加载方法及装置
CN108459861B (zh) 一种软件安装方法及系统
CN111291288A (zh) 网页链接抽取方法及系统
CN105488199A (zh) 混合表单处理方法、装置以及移动终端
CN115080114A (zh) 应用程序的移植处理方法、装置和介质
CN111796878B (zh) 一种应用于单页应用的资源拆分、加载方法和装置
CN110955856B (zh) 一种网页加载方法、装置、服务器及存储介质
CN114675872A (zh) 一种对应用程序的数据处理方法、装置、设备及存储介质
CN113407339A (zh) 资源请求反馈方法、装置、可读存储介质及电子设备
CN112698879A (zh) 加载源文件的方法及装置
CN111797009A (zh) 用于检测代码兼容性的方法、装置和电子设备
CN102694862A (zh) Web页面的下载方法和设备
CN104079594A (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
REG Reference to a national code

Ref country code: HK

Ref legal event code: DE

Ref document number: 1155252

Country of ref document: HK

C12 Rejection of a patent application after its publication
RJ01 Rejection of invention patent application after publication

Application publication date: 20110601

REG Reference to a national code

Ref country code: HK

Ref legal event code: WD

Ref document number: 1155252

Country of ref document: HK