代码文件的优化方法、系统和服务器的制造方法

文档序号:6500973阅读:105来源:国知局
代码文件的优化方法、系统和服务器的制造方法
【专利摘要】本发明提出一种代码文件的优化方法、系统和服务器,其中该方法包括以下步骤:服务器获取代码文件;服务器对代码文件进行分析以获取代码文件中的多个变量和/或函数及对应的重复频率,并根据重复频率筛选出满足预设值的部分变量和/或函数作为待替换内容;服务器生成每个待替换内容对应的标识符,并使用标识符分别替换待替换内容;以及服务器将每个待替换内容与标识符之间的对应关系作为查询文件,并将查询文件和替换之后的代码文件向至少一个客户端进行发布。根据本发明实施例方法,可以缩短代码文件中变量和/或者函数的长度,减少了服务器和客户端之间代码的传输量,优化了代码结构,同时提高代码的执行效率。
【专利说明】代码文件的优化方法、系统和服务器

【技术领域】
[0001] 本发明涉及计算机【技术领域】,尤其涉及一种代码文件的优化方法、系统和服务器。

【背景技术】
[0002] 代码文件特别是作为适应动态网页制作需要的编程语言Javascript代码文件等 在运行时,需要重复调用很多函数和变量,造成编写的代码文件过长,同时增加了代码文件 的传输量,运行效率低。
[0003] 目前,主要采用对代码文件进行压缩的方法实现代码文件的优化,存在的问题是 对代码文件进行压缩只针对上线前的操作有好处,对本身的代码结构没有实质作用,代码 的可读性低,同时代码的执行效率低。


【发明内容】

[0004] 本发明旨在至少解决上述技术问题之一。
[0005] 为此,本发明的第一个目的在于提出一种代码文件的优化方法。
[0006] 本发明的第二个目的在于提出一种代码文件的优化系统。
[0007] 本发明的第三个目的在于提出一种服务器。
[0008] 为了实现上述目的,本发明第一方面实施例的代码文件的优化方法包括以下步 骤:服务器获取代码文件;所述服务器对所述代码文件进行分析以获取所述代码文件中的 多个变量和/或函数及对应的重复频率,并根据所述重复频率筛选出满足预设值的部分变 量和/或函数作为待替换内容;所述服务器生成每个所述待替换内容对应的标识符,并使 用所述标识符分别替换所述待替换内容;以及所述服务器将每个所述待替换内容与所述标 识符之间的对应关系作为查询文件,并将所述查询文件和替换之后的所述代码文件向至少 一个客户端进行发布。
[0009] 根据本发明实施例的代码文件的优化方法,通过服务器对代码文件进行分析获 取代码文件中变量和/或函数的重复频率,并根据重复频率筛选出满足预设值的变量和/ 或函数作为待替换内容,并生成标识符代替待替换内容,一方面可以缩短代码文件特别是 Javascript代码文件中变量和/或者函数的长度,减少了服务器和客户端之间代码的传输 量,优化了代码结构,同时提高代码的执行效率,另一方面可以将代码文件中重复频率高的 代码提供给代码开发者查看,为其主动优化代码提供依据。
[0010] 为了实现上述目的,本发明第二方面实施例的代码文件的优化系统,包括:服务器 和客户端,其中,所述服务器,用于获取代码文件,以及对所述代码文件进行分析以获取所 述代码文件中的多个变量和/或函数及对应的重复频率,并根据所述重复频率筛选出满足 预设值的部分变量和/或函数作为待替换内容,以及生成每个所述待替换内容对应的标识 符,并使用所述标识符分别替换所述待替换内容,以及将每个所述待替换内容与所述标识 符之间的对应关系作为查询文件,并将所述查询文件和替换之后的所述代码文件向至少一 个所述客户端进行发布。 toon] 根据本发明实施例的代码文件的优化系统,通过服务器对代码文件进行分析获 取代码文件中变量和/或函数的重复频率,并根据重复频率筛选出满足预设值的变量和/ 或函数作为待替换内容,并生成标识符代替待替换内容,一方面可以缩短代码文件特别是 Javascript代码文件中变量和/或者函数的长度,减少了服务器和客户端之间代码的传输 量,优化了代码结构,同时提高代码的执行效率,另一方面可以将代码文件中重复频率高的 代码提供给代码开发者查看,为其主动优化代码提供依据。
[0012] 为了实现上述目的,本发明第三方面实施例的服务器,包括:获取模块,用于获取 代码文件;分析模块,用于对所述代码文件进行分析以获取所述代码文件中的多个变量和 /或函数及对应的重复频率;筛选模块,用于根据所述重复频率筛选出满足预设值的部分 变量和/或函数作为待替换内容;生成模块,用于生成每个所述待替换内容对应的标识符; 替换模块,用于使用所述标识符分别替换所述待替换内容;以及发布模块,用于将每个所述 待替换内容与所述标识符之间的对应关系作为查询文件,并将所述查询文件和替换之后的 所述代码文件向至少一个客户端进行发布。
[0013] 根据本发明实施例的服务器,通过对代码文件进行分析获取代码文件中变量和/ 或函数的重复频率,并根据重复频率筛选出满足预设值的变量和/或函数作为待替换内 容,并生成标识符代替待替换内容,一方面可以缩短代码文件特别是Javascript代码文件 中变量和/或者函数的长度,减少了服务器和客户端之间代码的传输量,优化了代码结构, 同时提高代码的执行效率,另一方面可以将代码文件中重复频率高的代码提供给代码开发 者查看,为其主动优化代码提供依据。
[0014] 本发明附加的方面和优点将在下面的描述中部分给出,部分将从下面的描述中变 得明显,或通过本发明的实践了解到。

【专利附图】

【附图说明】
[0015] 本发明上述的和/或附加的方面和优点从下面结合附图对实施例的描述中将变 得明显和容易理解,其中,
[0016] 图1是根据本发明一个实施例的代码文件的优化方法的流程图;
[0017] 图2是根据本发明一个具体实施例的代码文件的优化方法的流程图;
[0018] 图3是根据本发明另一个具体实施例的代码文件的优化方法的流程图;
[0019] 图4是根据本发明一个实施例的代码文件的优化系统的结构示意图;
[0020] 图5是根据本发明一个实施例的服务器的结构示意图;
[0021] 图6是根据本发明一个实施例的分析模块120的结构示意图;以及
[0022] 图7是根据本发明一个实施例的生成模块140的结构示意图。

【具体实施方式】
[0023] 下面详细描述本发明的实施例,所述实施例的示例在附图中示出,其中自始至终 相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考 附图描述的实施例是示例性的,仅用于解释本发明,而不能理解为对本发明的限制。相反, 本发明的实施例包括落入所附加权利要求书的精神和内涵范围内的所有变化、修改和等同 物。
[0024] 在本发明的描述中,需要理解的是,术语"第一"、"第二"等仅用于描述目的,而不 能理解为指示或暗示相对重要性。在本发明的描述中,需要说明的是,除非另有明确的规定 和限定,术语"相连"、"连接"应做广义理解,例如,可以是固定连接,也可以是可拆卸连接, 或一体地连接;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介 间接相连。对于本领域的普通技术人员而言,可以具体情况理解上述术语在本发明中的具 体含义。此外,在本发明的描述中,除非另有说明,"多个"的含义是两个或两个以上。
[0025] 流程图中或在此以其他方式描述的任何过程或方法描述可以被理解为,表示包括 一个或更多个用于实现特定逻辑功能或过程的步骤的可执行指令的代码的模块、片段或部 分,并且本发明的优选实施方式的范围包括另外的实现,其中可以不按所示出或讨论的顺 序,包括根据所涉及的功能按基本同时的方式或按相反的顺序,来执行功能,这应被本发明 的实施例所属【技术领域】的技术人员所理解。
[0026] 下面参考附图描述根据本发明实施例的代码文件的优化方法、系统和服务器。
[0027] -种代码文件的优化方法,包括以下步骤:服务器获取代码文件;服务器对代码 文件进行分析以获取代码文件中的多个变量和/或函数及对应的重复频率,并根据重复频 率筛选出满足预设值的部分变量和/或函数作为待替换内容;服务器生成每个待替换内容 对应的标识符,并使用标识符分别替换待替换内容;以及服务器将每个待替换内容与标识 符之间的对应关系作为查询文件,并将查询文件和替换之后的代码文件向至少一个客户端 进行发布。
[0028] 图1是根据本发明一个实施例的代码文件的优化方法的流程图。
[0029] 如图1所示,代码文件的优化方法包括以下步骤。
[0030] 步骤S101,服务器获取代码文件。
[0031] 在本发明的一个实施例中,代码文件包括javascript代码文件。
[0032] 步骤S102,服务器对代码文件进行分析以获取代码文件中的多个变量和/或函数 及对应的重复频率,并根据重复频率筛选出满足预设值的部分变量和/或函数作为待替换 内容。
[0033] 具体地,服务器对代码文件中每个变量和/或函数的出现的频率即重复频率进行 分析统计,并根据统计的结果生成统计词表格,例如,统计词表格格式可以为,
[0034] 'word, = 'count,
[0035] 'frequency,= ' 100,
[0036] 可以理解为,word表示代码文件中变量和/或函数的名称,frequency表示代码文 件中变量和/或函数名称出现的次数,即变量count出现的频率为100次。服务器可以设 置筛选重复频率的预设值,或者服务器可以根据用户指令设置筛选重复频率的预设值,月艮 务器根据预设值判断每个变量和/或函数出现的频率,如果变量或函数出现的频率小于预 设值,服务器将该变量和/或函数从统计词表格中删除。
[0037] 步骤S103,服务器生成每个待替换内容对应的标识符,并使用标识符分别替换待 替换内容。
[0038] 在本发明的一个实施例中,服务器对待替换内容的名称进行缩短处理,并检测缩 短处理之后的待替换内容的名称的唯一性,以及将唯一的缩短处理之后的待替换内容的名 称作为标识符。具体地,服务器首先根据变量和/或函数的名称进行缩短处理,例如将变量 'count'缩短为'co',然后检测缩短处理之后的名称的唯一性,例如变量'confirm'缩短处 理后名称同样为'c〇',为了保证变量名称的唯一性,服务器可以将变量'confirm'的名称 缩短为'con'或者'co_f'等。服务器可以根据缩短处理后的待替换内容的名称作为待替 换内容的唯一标识符,并用唯一的标识码代替对应的待替换内容,由此可以缩短代码文件 的长度,提高代码的执行效率。
[0039] 步骤S104,服务器将每个待替换内容与标识符之间的对应关系作为查询文件,并 将查询文件和替换之后的代码文件向至少一个客户端进行发布。
[0040] 根据本发明实施例的代码文件的优化方法,通过服务器对代码文件进行分析获 取代码文件中变量和/或函数的重复频率,并根据重复频率筛选出满足预设值的变量和/ 或函数作为待替换内容,并生成标识符代替待替换内容,一方面可以缩短代码文件特别是 Javascript代码文件中变量和/或者函数的长度,减少了服务器和客户端之间代码的传输 量,优化了代码结构,同时提高代码的执行效率,另一方面可以将代码文件中重复频率高的 代码提供给代码开发者查看,为其主动优化代码提供依据。
[0041] 图2是根据本发明一个具体实施例的代码文件的优化方法的流程图。
[0042] 如图2所示,代码文件的优化方法包括以下步骤。
[0043] 步骤S201,服务器获取代码文件。
[0044] 在本发明的一个实施例中,代码文件包括javascript代码文件。
[0045] 步骤S202,服务器对代码文件进行分析以获取代码文件中的多个变量和/或函数 及对应的重复频率,并根据重复频率筛选出满足预设值的部分变量和/或函数作为待替换 内容。
[0046] 具体地,服务器对代码文件中每个变量和/或函数的出现的频率即重复频率进行 分析统计,并根据统计的结果生成统计词表格,例如,统计词表格格式可以为,
[0047] 'word, = 'count,
[0048] 'frequency,= ' 100,
[0049] 可以理解为,word表示代码文件中变量和/或函数的名称,frequency表示代码文 件中变量和/或函数名称出现的次数,即变量count出现的频率为100次。服务器可以设 置筛选重复频率的预设值,或者服务器可以根据用户指令设置筛选重复频率的预设值,月艮 务器根据预设值判断每个变量和/或函数出现的频率,如果变量或函数出现的频率小于预 设值,服务器将该变量和/或函数从统计词表格中删除。
[0050] 步骤S203,服务器生成每个待替换内容对应的标识符,并使用标识符分别替换待 替换内容。
[0051] 在本发明的一个实施例中,服务器对待替换内容的名称进行缩短处理,并检测缩 短处理之后的待替换内容的名称的唯一性,以及将唯一的缩短处理之后的待替换内容的名 称作为标识符。具体地,服务器首先根据变量和/或函数的名称进行缩短处理,例如将变量 'count'缩短为'co',然后检测缩短处理之后的名称的唯一性,例如变量'confirm'缩短处 理后名称同样为'c〇',为了保证变量名称的唯一性,服务器可以将变量'confirm'的名称 缩短为'con'或者'co_f'等。服务器可以根据缩短处理后的待替换内容的名称作为待替 换内容的唯一标识符,并用唯一的标识码代替对应的待替换内容,由此可以缩短代码文件 的长度,提高代码的执行效率。
[0052] 步骤S204,服务器将每个待替换内容与标识符之间的对应关系作为查询文件,并 将查询文件和替换之后的代码文件向至少一个客户端进行发布。
[0053] 步骤S205,客户端缓存查询文件和待替换内容。
[0054] 步骤S206,当客户端运行代码文件时,客户端根据标识符在查询文件中查询并从 缓存中获取对应的待替换内容。
[0055] 根据本发明实施例的代码文件的优化方法,客户端运行代码文件时根据标识符在 查询文件中查询对应的待替换文件,可以提高代码文件特别是Javascript代码文件的运 行效率,提高了代码的可读性,同时提升了用户体验。
[0056] 图3是根据本发明另一个具体实施例的代码文件的优化方法的流程图。
[0057] 如图3所示,代码文件的优化方法包括以下步骤。
[0058] 步骤S301,服务器获取代码文件。
[0059] 在本发明的一个实施例中,代码文件包括javascript代码文件。
[0060] 步骤S302,服务器获取代码文件中前后都存在空格的多个字符串。
[0061] 步骤S303,服务器根据关键字白名单对多个字符串进行过滤以获取多个变量和/ 或函数,其中关键字白名单包括代码文件对应的代码语言所使用的多个关键字。
[0062] 具体地,服务器检测每个字符串是否在关键词白名单中存在,关键词白名单包括 代码文件例如Javascript代码文件中的多个关键词,例如,'var'、'for'、'return'等。如 果字符串在关键词白名单中存在,服务器不保存该字符串。服务器将过滤后的变量和/或 函数保存到统计词表格中。
[0063] 步骤S304,服务器统计每个所述变量和/或函数的所述重复频率。
[0064] 具体地,服务器对代码文件中每个变量和/或函数的出现的频率即重复频率进行 分析统计,并根据统计的结果生成统计词表格,例如,统计词表格格式可以为,
[0065] 'word, = 'count,
[0066] 'frequency,= ' 100,
[0067] 可以理解为,word表示代码文件中变量和/或函数的名称,frequency表示代码文 件中变量和/或函数名称出现的次数,即变量count出现的频率为100次。
[0068] 步骤S305,服务器根据重复频率筛选出满足预设值的部分变量和/或函数作为待 替换内容。
[0069] 具体地,服务器可以设置筛选重复频率的预设值,或者服务器可以根据用户指令 设置筛选重复频率的预设值,服务器根据预设值判断每个变量和/或函数出现的频率,如 果变量和/或函数出现的频率小于预设值,服务器将该变量和/或函数从统计词表格中删 除。
[0070] 步骤S306,服务器生成每个待替换内容对应的标识符,并使用标识符分别替换待 替换内容。
[0071] 在本发明的一个实施例中,服务器对待替换内容的名称进行缩短处理,并检测缩 短处理之后的待替换内容的名称的唯一性,以及将唯一的缩短处理之后的待替换内容的名 称作为标识符。具体地,服务器首先根据变量和/或函数的名称进行缩短处理,例如将变量 'count'缩短为'co',然后检测缩短处理之后的名称的唯一性,例如变量'confirm'缩短处 理后名称同样为'c〇',为了保证变量名称的唯一性,服务器可以将变量'confirm'的名称 缩短为'con'或者'co_f'等。服务器可以根据缩短处理后的待替换内容的名称作为待替 换内容的唯一标识符,并用唯一的标识码代替对应的待替换内容,由此可以缩短代码文件 的长度,提高代码的执行效率。
[0072] 步骤S307,服务器将每个待替换内容与标识符之间的对应关系作为查询文件,并 将查询文件和替换之后的代码文件向至少一个客户端进行发布。
[0073] 步骤S308,客户端缓存查询文件和待替换内容。
[0074] 步骤S309,当客户端运行代码文件时,客户端根据标识符在查询文件中查询并从 缓存中获取对应的待替换内容。
[0075] 根据本发明实施例的代码文件的优化方法,服务器通过获取代码文件中前后都存 在空格的多个字符串,并根据关键字白名单对多个字符串进行过滤以获取多个变量和/或 函数,可以避免服务器对代码文件特别是Javascript代码文件中的关键词进行统计,同时 避免了服务器资源的浪费。
[0076] 为了实现上述实施例,本发明还提出一种代码文件的优化系统。
[0077] -种代码文件的优化的系统,包括:服务器和客户端,其中,服务器,用于获取代码 文件,以及对代码文件进行分析以获取代码文件中的多个变量和/或函数及对应的重复频 率,并根据重复频率筛选出满足预设值的部分变量和/或函数作为待替换内容,以及生成 每个待替换内容对应的标识符,并使用标识符分别替换待替换内容,以及将每个待替换内 容与标识符之间的对应关系作为查询文件,并将查询文件和替换之后的代码文件向至少一 个客户端进行发布。
[0078] 图4是根据本发明一个实施例的代码文件的优化系统的结构示意图。
[0079] 如图4所示,代码文件的优化系统包括:服务器10和客户端20。
[0080] 具体地,服务器10用于获取代码文件,以及对代码文件进行分析以获取代码文件 中的多个变量和/或函数及对应的重复频率,并根据重复频率筛选出满足预设值的部分变 量和/或函数作为待替换内容,以及生成每个待替换内容对应的标识符,并使用标识符分 别替换待替换内容,以及将每个待替换内容与标识符之间的对应关系作为查询文件,并将 查询文件和替换之后的代码文件向至少一个客户端20进行发布。
[0081] 更具体地,服务器10获取代码文件后,服务器10对代码文件中每个变量和/或函 数的出现的频率即重复频率进行分析统计,并根据统计的结果生成统计词表格,例如,统计 词表格格式可以为,
[0082] 'word, = 'count,
[0083] 'frequency,= ' 100,
[0084] 可以理解为,word表示代码文件中变量和/或函数的名称,frequency表示代码文 件中变量和/或函数名称出现的次数,即变量count出现的频率为100次。服务器10可以 设置筛选重复频率的预设值,或者服务器10可以根据用户指令设置筛选重复频率的预设 值,服务器10根据预设值判断每个变量和/或函数出现的频率,如果变量或函数出现的频 率小于预设值,服务器10将该变量和/或函数从统计词表格中删除。
[0085] 在本发明的一个实施例中,代码文件包括javascript代码文件。
[0086] 在本发明的一个实施例中,服务器10对待替换内容的名称进行缩短处理,并检测 缩短处理之后的待替换内容的名称的唯一性,以及将唯一的缩短处理之后的待替换内容的 名称作为标识符。具体地,服务器10首先根据变量和/或函数的名称进行缩短处理,例如将 变量'count'缩短为'CO',然后检测缩短处理之后的名称的唯一性,例如变量'confirm'缩 短处理后名称同样为'c〇',为了保证变量名称的唯一性,服务器10可以将变量'confirm' 的名称缩短为'con'或者'co_f'等。服务器10可以根据缩短处理后的待替换内容的名称 作为待替换内容的唯一标识符,并用唯一的标识码代替对应的待替换内容,由此可以缩短 代码文件的长度,提高代码的执行效率。
[0087] 根据本发明实施例的代码文件的优化系统,通过服务器对代码文件进行分析获 取代码文件中变量和/或函数的重复频率,并根据重复频率筛选出满足预设值的变量和/ 或函数作为待替换内容,并生成标识符代替待替换内容,一方面可以缩短代码文件特别是 Javascript代码文件中变量和/或者函数的长度,减少了服务器和客户端之间代码的传输 量,优化了代码结构,同时提高代码的执行效率,另一方面可以将代码文件中重复频率高的 代码提供给代码开发者查看,为其主动优化代码提供依据。
[0088] 在本发明的一个实施例中,客户端20用于缓存查询文件和待替换内容,并当客户 端20运行代码文件时,根据标识符在查询文件中查询并从缓存中获取对应的待替换内容。 由此,可以提高代码文件特别是Javascript代码文件的运行效率,提高了代码的可读性, 同时提升了用户体验。
[0089] 在本发明的一个实施例中,服务器10还用于获取代码文件中前后都存在空格的 多个字符串,并根据关键字白名单对多个字符串进行过滤以获取多个变量和/或函数,其 中关键字白名单包括代码文件对应的代码语言所使用的多个关键字,以及统计每个变量和 /或函数的重复频率。具体地,首先,服务器10获取代码文件中前面存在空格并且后面存在 空格或者换行符的字符串。然后,服务器10检测每个字符串是否在关键词白名单中存在, 关键词白名单包括Javascript代码的多个关键词,例如,'var'、'for'、'return'等。如果 字符串在关键词白名单中存在,服务器10不保存该字符串。服务器10将过滤后的变量和 /或函数保存到统计词表格中。由此,可以避免服务器对Javascript代码中的关键词进行 统计,同时避免了服务器资源的浪费。
[0090] 为了实现上述实施例,本发明还提出一种服务器。
[0091] 一种服务器,包括:获取模块,用于获取代码文件;分析模块,用于对代码文件进 行分析以获取代码文件中的多个变量和/或函数及对应的重复频率;筛选模块,用于根据 重复频率筛选出满足预设值的部分变量和/或函数作为待替换内容;生成模块,用于生成 每个待替换内容对应的标识符;替换模块,用于使用标识符分别替换待替换内容;以及发 布模块,用于将每个待替换内容与标识符之间的对应关系作为查询文件,并将查询文件和 替换之后的代码文件向至少一个客户端进行发布。
[0092] 图5是根据本发明一个实施例的服务器的结构示意图。
[0093] 如图5所示,服务器包括:获取模块110、分析模块120、筛选模块130、生成模块 140、替换模块150和发布模块160。
[0094] 具体地,获取模块110用于获取代码文件。在本发明的一个实施例中,代码文件包 括javascript代码文件。
[0095] 分析模块120用于对获取模块110获取的代码文件进行分析以获取代码文件中的 多个变量和/或函数及对应的重复频率。更具体地,分析模块120对代码文件中每个变量 和/或函数的出现的频率即重复频率进行分析统计,并根据统计的结果生成统计词表格, 例如,统计词表格格式可以为,
[0096] 'word, = 'count,
[0097] 'frequency,= ' 100,
[0098] 可以理解为,word表示代码文件中变量和/或函数的名称,frequency表示代码文 件中变量和/或函数名称出现的次数,即变量count出现的频率为100次。
[0099] 筛选模块130用于根据重复频率筛选出满足预设值的部分变量和/或函数作为待 替换内容。更具体地,筛选模块130可以设置筛选重复频率的预设值,或者筛选模块130可 以根据用户指令设置筛选重复频率的预设值,筛选模块130根据预设值判断每个变量和/ 或函数出现的频率,如果变量或函数出现的频率小于预设值,筛选模块130将该变量和/或 函数从统计词表格中删除。
[0100] 生成模块140用于生成每个待替换内容对应的标识符。
[0101] 替换模块150用于使用标识符分别替换待替换内容。更具体地,替换模块150可 以根据生成模块140缩短处理后的待替换内容的名称作为待替换内容的唯一标识符,并用 唯一的标识码代替对应的待替换内容。
[0102] 发布模块160用于将每个待替换内容与标识符之间的对应关系作为查询文件,并 将查询文件和替换之后的代码文件向至少一个客户端进行发布。
[0103] 根据本发明实施例的服务器,通过对代码文件进行分析获取代码文件中变量和/ 或函数的重复频率,并根据重复频率筛选出满足预设值的变量和/或函数作为待替换内 容,并生成标识符代替待替换内容,一方面可以缩短代码文件特别是Javascript代码文件 中变量和/或者函数的长度,减少了服务器和客户端之间代码的传输量,优化了代码结构, 同时提高代码的执行效率,另一方面可以将代码文件中重复频率高的代码提供给代码开发 者查看,为其主动优化代码提供依据。
[0104] 图6是根据本发明一个实施例的分析模块120的结构示意图。
[0105] 如图6所示,分析模块120包括:获取单元121、过滤单元122和统计单元123。
[0106] 具体地,获取单元121用于获取代码文件中前后都存在空格的多个字符串。
[0107] 过滤单元122用于根据关键字白名单对获取单元121获取的多个字符串进行过滤 以获取多个变量和/或函数,其中关键字白名单包括代码文件对应的代码语言所使用的多 个关键字。更具体地,过滤单兀122检测每个字符串是否在关键词白名单中存在,关键词白 名单包括Javascript代码的多个关键词,例如,'var'、'for'、'return'等。如果字符串在 关键词白名单中存在,过滤单元122不保存该字符串。过滤单元122将过滤后的变量和/ 或函数保存到统计词表格中。
[0108] 统计单元123用于统计过滤单元122过滤的每个变量和/或函数的重复频率。更 具体地,统计单元123对代码文件中每个变量和/或函数的出现的频率即重复频率进行分 析统计,并根据统计的结果生成统计词表格,例如,统计词表格格式可以为,
[0109] 'word, = 'count,
[0110] 'frequency,= ' 100,
[0111] 可以理解为,word表示代码文件中变量和/或函数的名称,frequency表示代码文 件中变量和/或函数名称出现的次数,即变量count出现的频率为100次。
[0112] 根据本发明实施例的服务器,通过获取代码文件中前后都存在空格的多个字符 串,并根据关键字白名单对多个字符串进行过滤以获取多个变量和/或函数,可以避免服 务器对代码文件特别是Javascript代码文件中的关键词进行统计,同时避免了服务器资 源的浪费。
[0113] 图7是根据本发明一个实施例的生成模块140的结构示意图。
[0114] 如图7所示,生成模块140包括:处理单元141和检测单元142。
[0115] 具体地,处理单元141用于对待替换内容的名称进行缩短处理。更具体地,处理单 元141首先根据变量和/或函数的名称进行缩短处理,例如将变量'count'缩短为'co'。
[0116] 检测单元142用于检测处理单元141缩短处理之后的待替换内容的名称的唯一 性,并将唯一的缩短处理之后的待替换内容的名称作为标识符。更具体地,检测单元142 检测缩短处理之后的名称的唯一性,例如变量'confirm'缩短处理后名称同样为'co',为 了保证变量名称的唯一性,检测单元142检测到缺乏唯一性之后通知处理单元141将变量 'confirm'的名称缩短为'con'或者'co_f'等。
[0117] 根据本发明实施例的服务器,可以缩短代码文件的长度,提高代码的执行效率。
[0118] 应当理解,本发明的各部分可以用硬件、软件、固件或它们的组合来实现。在上述 实施方式中,多个步骤或方法可以用存储在存储器中且由合适的指令执行系统执行的软件 或固件来实现。例如,如果用硬件来实现,和在另一实施方式中一样,可用本领域公知的下 列技术中的任一项或他们的组合来实现:具有用于对数据信号实现逻辑功能的逻辑门电路 的离散逻辑电路,具有合适的组合逻辑门电路的专用集成电路,可编程门阵列(PGA),现场 可编程门阵列(FPGA)等。
[0119] 在本说明书的描述中,参考术语"一个实施例"、"一些实施例"、"示例"、"具体示 例"、或"一些示例"等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特 点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不 一定指的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任何 的一个或多个实施例或示例中以合适的方式结合。
[0120] 尽管已经示出和描述了本发明的实施例,本领域的普通技术人员可以理解:在不 脱离本发明的原理和宗旨的情况下可以对这些实施例进行多种变化、修改、替换和变型,本 发明的范围由权利要求及其等同物限定。
【权利要求】
1. 一种代码文件的优化方法,其特征在于,包括以下步骤: 服务器获取代码文件; 所述服务器对所述代码文件进行分析以获取所述代码文件中的多个变量和/或函数 及对应的重复频率,并根据所述重复频率筛选出满足预设值的部分变量和/或函数作为待 替换内容; 所述服务器生成每个所述待替换内容对应的标识符,并使用所述标识符分别替换所述 待替换内容;以及 所述服务器将每个所述待替换内容与所述标识符之间的对应关系作为查询文件,并将 所述查询文件和替换之后的所述代码文件向至少一个客户端进行发布。
2. 根据权利要求1所述的方法,其特征在于,还包括: 所述客户端缓存所述查询文件和所述待替换内容;以及 当所述客户端运行所述代码文件时,所述客户端根据所述标识符在所述查询文件中查 询并从所述缓存中获取对应的所述待替换内容。
3. 根据权利要求1或2所述的方法,其特征在于,所述服务器对所述代码文件进行分析 以获取所述代码文件中的多个变量和/或函数及对应的重复频率,进一步包括: 所述服务器获取所述代码文件中前后都存在空格的多个字符串; 所述服务器根据关键字白名单对所述多个字符串进行过滤以获取多个所述变量和/ 或函数,其中所述关键字白名单包括所述代码文件对应的代码语言所使用的多个关键字; 以及 所述服务器统计每个所述变量和/或函数的所述重复频率。
4. 根据权利要求1所述的方法,其特征在于,所述服务器生成每个所述待替换内容对 应的标识符,进一步包括: 所述服务器对所述待替换内容的名称进行缩短处理,并检测缩短处理之后的所述待替 换内容的名称的唯一性,以及将唯一的缩短处理之后的所述待替换内容的名称作为所述标 识符。
5. 根据权利要求1-4任一项所述的方法,其特征在于,所述代码文件包括javascript 代码文件。
6. -种代码文件的优化系统,其特征在于,包括:服务器和客户端,其中, 所述服务器,用于获取代码文件,以及对所述代码文件进行分析以获取所述代码文件 中的多个变量和/或函数及对应的重复频率,并根据所述重复频率筛选出满足预设值的部 分变量和/或函数作为待替换内容,以及生成每个所述待替换内容对应的标识符,并使用 所述标识符分别替换所述待替换内容,以及将每个所述待替换内容与所述标识符之间的对 应关系作为查询文件,并将所述查询文件和替换之后的所述代码文件向至少一个所述客户 端进行发布。
7. 根据权利要求6所述的系统,其特征在于,所述客户端用于: 缓存所述查询文件和所述待替换内容,并当所述客户端运行所述代码文件时,根据所 述标识符在所述查询文件中查询并从所述缓存中获取对应的所述待替换内容。
8. 根据权利要求6或7所述的系统,其特征在于,所述服务器还用于: 获取所述代码文件中前后都存在空格的多个字符串,并根据关键字白名单对所述多个 字符串进行过滤以获取多个所述变量和/或函数,其中所述关键字白名单包括所述代码文 件对应的代码语言所使用的多个关键字,以及统计每个所述变量和/或函数的所述重复频 率。
9. 根据权利要求6所述的系统,其特征在于,所述服务器还用于: 对所述待替换内容的名称进行缩短处理,并检测缩短处理之后的所述待替换内容的名 称的唯一性,以及将唯一的缩短处理之后的所述待替换内容的名称作为所述标识符。
10. 根据权利要求6-9任一项所述的方法,其特征在于,所述代码文件包括javascript 代码文件。
11. 一种服务器,其特征在于,包括: 获取模块,用于获取代码文件; 分析模块,用于对所述代码文件进行分析以获取所述代码文件中的多个变量和/或函 数及对应的重复频率; 筛选模块,用于根据所述重复频率筛选出满足预设值的部分变量和/或函数作为待替 换内容; 生成模块,用于生成每个所述待替换内容对应的标识符; 替换模块,用于使用所述标识符分别替换所述待替换内容;以及 发布模块,用于将每个所述待替换内容与所述标识符之间的对应关系作为查询文件, 并将所述查询文件和替换之后的所述代码文件向至少一个客户端进行发布。
12. 根据权利要求11或2所述的服务器,其特征在于,所述分析模块包括: 获取单元,用于获取所述代码文件中前后都存在空格的多个字符串; 过滤单元,用于根据关键字白名单对所述多个字符串进行过滤以获取多个所述变量和 /或函数,其中所述关键字白名单包括所述代码文件对应的代码语言所使用的多个关键字; 以及 统计单元,用于统计每个所述变量和/或函数的所述重复频率。
13. 根据权利要求11所述的服务器,其特征在于,所述生成模块包括: 处理单元,用于对所述待替换内容的名称进行缩短处理; 检测单元,用于检测缩短处理之后的所述待替换内容的名称的唯一性,并将唯一的缩 短处理之后的所述待替换内容的名称作为所述标识符。
14. 根据权利要求11-13任一项所述的服务器,其特征在于,所述代码文件包括 javascript代码文件。
【文档编号】G06F9/44GK104063208SQ201310092867
【公开日】2014年9月24日 申请日期:2013年3月21日 优先权日:2013年3月21日
【发明者】白旭, 雷凯华 申请人:北京百度网讯科技有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1