一种数据压缩方法和装置的制造方法

文档序号:9814279阅读:388来源:国知局
一种数据压缩方法和装置的制造方法
【技术领域】
[0001] 本申请涉及数据处理技术领域,特别是涉及一种数据压缩方法和一种数据压缩装 置。
【背景技术】
[0002] 级联样式表(Cascading St^e Sheets, CS巧用来表现HTML (标准通用标记语言 的一个应用)或XML (标准通用标记语言的一个子集)等文件样式。CSS文件在网络浏览器 中W表现样式而存在,它定义了网页展现的规则,是一种文本格式。CSS能够真正做到网页 表现与内容分离,相对于传统HTML的表现而言,它能够对网页中对象的位置排版进行像素 级的精确控制,支持几乎所有的字体字号样式,拥有对网页对象和模型样式编辑的能力,并 能够进行初步交互设计,是目前基于文本展示最优秀的表现设计语言。基于上述优势,CSS 得到了广泛应用。
[0003] 为了使CSS文件拥有更小的体积W在网络传输时更加快速,通常会对CSS文件进 行压缩。目前,可W采用YUICompress、clean-css等压缩方法进行压缩,送些压缩方法通过 去除CSS文件中的空白、注释字符、无效字符等来缩短其长度。然而,送些压缩方法无法去 除CSS文件中大量的兀余代码,对CSS文件的压缩非常有限,仍然会存在白白浪费带宽,影 响网络传输速度的问题。

【发明内容】

[0004] 本申请实施例所要解决的技术问题是提供一种数据压缩方法,能够更有效的缩短 CSS文件的长度,节省其占用的带宽。
[0005] 相应的,本申请实施例还提供了一种数据压缩装置,用W保证上述方法的实现及 应用。
[0006] 为了解决上述问题,本申请公开了一种数据压缩方法,包括:
[0007] 确定级联样式表CSS文件中的合并参量,所述合并参量至少包括相同的选择器、 同一选择器中相同的样式名、不同选择器中的相同样式中的一种;
[0008] 判断所述合并参量是否满足合并条件;
[0009] 当所述合并参量满足合并条件时,将所述CSS文件中的合并参量进行合并,获得 CSS压缩文件。
[0010] 进一步,当所述合并参量为相同的选择器时,所述判断所述合并参量是否满足合 并条件,包括:
[0011] 判断第一选择器与第二选择器是否紧邻;其中,所述第一选择器与所述第二选择 器是在所述CSS文件中先后排列的相同的选择器;
[0012] 若是,则满足合并条件;若否,则判断中间选择器与所述第二选择器和所述第H选 择器中是否包含相同的样式名;其中,所述中间选择器是位于所述第一选择器与所述第二 选择器之间的选择器;
[0013] 若否,则满足合并条件;若是,则判断所述中间选择器与所述第一选择器或所述第 二选择器所包含的相同的样式名的值是否相同;
[0014] 若是,则满足合并条件;若否,则判断所述中间选择器与所述第一选择器或所述第 二选择器相比,所包含的相同样式名的值是否具有不同的优先级;
[0015] 若是,则满足合并条件。
[0016] 进一步,所述当所述合并参量满足合并条件时,将所述CSS文件中的合并参量进 行合并,获得CSS压缩文件,包括:
[0017] 当所述合并参量满足合并条件时,将所述相同选择器中的样式合并至同一选择器 中。
[0018] 进一步,当所述合并参量为同一选择器中相同的样式名时,所述判断所述合并参 量是否满足合并条件,包括:
[0019] 判断所述同一选择器中相同的样式名的值是否相同;
[0020] 若是,则满足合并条件;若否,则判断所述同一选择器中相同的样式名之间是否存 在覆盖与被覆盖关系;
[0021] 若否,则满足合并条件;若是,则当所述相同样式名中后者覆盖前者时,判断所述 前者的样式名的值是否具有更高的优先级,若否,则满足合并条件;当所述相同样式名中 前者覆盖后者时,判断所述前者的样式名的值是否具有更高的优先级,若是,则满足合并条 件。
[0022] 进一步,所述当所述合并参量满足合并条件时,将所述CSS文件中的合并参量进 行合并,获得CSS压缩文件,包括:
[0023] 当所述合并参量满足合并条件时,若所述相同样式名的值之间具有相同的优先 级,则由后者覆盖前者,获得CSS压缩文件;若所述相同的样式名的值之间具有不同的优先 级,则由优先级高者覆盖优先级低者,获得CSS压缩文件。
[0024] 进一步,当所述合并参量为不同选择器中的相同样式时,在所述将所述CSS文件 中的合并参量进行合并,获得CSS压缩文件之前,还包括:
[0025] 预测将所述CSS文件中的合并参量进行合并后获得的CSS文件的长度是否小于合 并前的CSS文件的长度;
[0026] 若是,再将所述CSS文件中的合并参量进行合并,获得CSS压缩文件。
[0027] 进一步,所述预测将所述CSS文件中的合并参量进行合并后获得的CSS文件的长 度是否小于合并前的CSS文件的长度,包括:
[002引通过比较包含所述相同样式的选择器的名称长度与所述相同样式的长度,确定将 所述CSS文件中的合并参量进行合并后获得的CSS文件的长度是否小于合并前的CSS文件 的长度,其中,所述包含所述相同样式的选择器中还包含不同样式。
[0029] 进一步,所述将所述CSS文件中的合并参量进行合并,获得CSS压缩文件,包括:
[0030] 提取所述CSS文件中各选择器的相同样式作为公因子;
[0031] 将包含所述相同样式的选择器作为所述公因子的共同选择器进行合并,获得CSS 压缩文件。
[0032] 进一步,所述将所述CSS文件中的合并参量进行合并,获得CSS压缩文件,还包 括:
[0033] 比较所获得的所有CSS压缩文件的长度;其中,在所述CSS文件中提取不同的公因 子对应获得不同的CSS压缩文件;
[0034] 选择长度最短的CSS压缩文件作为最终的CSS压缩文件。
[0035] 进一步,所述提取所述CSS文件中各选择器的相同样式作为公因子,包括:
[0036] 对所述各选择器中的样式进行排序;
[0037] 按照具有相同样式的选择器的数量,由大到小依次提取所述各选择器的相同样式 作为公因子。
[0038] 进一步,所述判断所述合并参量是否满足合并条件,包括:
[0039] 判断第H选择器与第四选择器是否紧邻,其中所述第H选择器与所述第四选择器 是在所述CSS文件中先后排列的具有相同样式的选择器;
[0040] 若是,则满足合并条件;若否,则判断间隔选择器中是否包含所述第H选择器和所 述第四选择器的所述相同样式的样式名,所述间隔选择器是位于所述第H选择器与所述第 四选择器之间的选择器;
[0041] 若否,则满足合并条件;若是,则判断所述间隔选择器与所述第H选择器或所述第 四选择器相比,所包含的所述相同样式的样式名的值是否具有不同的优先级;
[0042] 若是,则满足合并条件。
[0043] 本申请还公开了一种数据压缩装置,包括:
[0044] 参量确定单元,被配置为确定级联样式表CSS文件中的合并参量,所述合并参量 至少包括相同的选择器、同一选择器中相同的样式名、不同选择器中的相同样式中的一 种;
[0045] 判断单元,被配置为判断所述合并参量是否满足合并条件;
[0046] 合并单元,被配置为当所述判断单元判断所述合并参量满足合并条件时,将所述 CSS文件中的合并参量进行合并,获得CSS压缩文件。
[0047] 与现有技术相比,本申请实施例包括W下优点:
[0048] 本申请实施例通过对CSS文件中的合并参量在满足合并条件下进行合并,从而在 保证安全压缩的基础上,提高了压缩比,更有效的缩短了 CSS文件的长度,节省了其占用的 带宽,更利于网络传输。
【附图说明】
[0049] 图1是本申请的一种数据压缩方法实施例的步骤流程图;
[0050] 图2是本申请的另一种数据压缩方法实施例的步骤流程图;
[0051] 图3是本申请图2所示实施例中判断相同的选择器是否满足合并条件的步骤流程 图;
[0052] 图4是本申请的另一种数据压缩方法实施例的步骤流程图;
[0053] 图5是本申请图4所示实施例中判断同一选择器中相同样式名是否满足合并条件 的步骤流程图;
[0054] 图6是本申请的另一种数据压缩方法实施例的步骤流程图;
[0055] 图7是本申请图4所示实施例中判断各选择器中的相同样式是否满足合并条件的 步骤流程图;
[0056] 图8是本申请图4所示实施例中将CSS文件中的合并参量进行合并,获得CSS压 缩文件的步骤流程图;
[0057] 图9是本申请图8所示实施例中提取CSS文件中各选择器的相同样式作为公因子 的步骤流程图;
[0058] 图10是本申请一种数据压缩装置实施例的结构框图。
【具体实施方式】
[0059] 为使本申请的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实 施方式对本申请作进一步详细的说明。
[0060] 参照图1,示出了本申请的一种数据压缩方法实施例的步骤流程图,具体可W包括 如下步骤:
[0061] 步骤101,确定CSS文件中的合并参量,该合并参量至少包括相同的选择器、同一 选择器中相同的样式名、不同选择器中的相同样式中的一种。
[0062] 首先,该CSS文件可W是原始的未经过任何压缩处理的CSS文件,也可W是已经通 过现有压缩方式,例如YUICompress、clean-css等压缩处理后的CSS文件,该CSS文件中的 空白、注释字符、无效字符等可W已经去除。
[0063] 本步骤中需要确定出CSS文件中可W进行合并的合并参量。该合并参量为CSS文 件中重复出现的内容,具体可W是CSS文件中相同的选择器,也可W是同一选择器中相同 的样式名,还可W是相同的样式,该相同的样式是指样式名及样式名的值均相同,当然还可 W是同时具有上述合并参量中的两种或H种,下面分别举例说明。
[0064] 例如;.a {margin ;0}. b {padding ;0}. a {padding ;0}中包含相同的选择器 a, 在其它实例中相同的选择器可能有多个;.almargin ;0 ;margin ;lpx}中在同一选择器 a中包含相同的样式名margin,在其它实例中同一选择器可能包含有多个相同的样式 名;.a {margin ;0 ;padding ;0}. b {margin ;0 ;padding ;1}中包含相同的样式 margin ;0,在 其它实例中可能存在多个选择器包含有相同的样式。再如almargin ;0 ;padding ;0 scolor : #FFF ;padding : 1}. b {margin :0 ;padding : 1}. a {margin :0 ;padding : I ;color :#FFF}中包 含相同的选择器a,同一选择器a中包含相同的样式名padding,且选择器a、b中包含相同 白勺曰r邑in :0 ;p曰ddin邑:1。
[0065] 当确定出CSS文件中包含的合并参量时,执行步骤102。
[0066] 步骤102,判断合并参量是否满足合并条件。
[0067] 该合并条件用于判断对合并参量进行合并是否安全,也即合并后获得的CSS压缩 文件所展现的样式与合并前是否一致,如果一致则满足合并条件,合并安全,可W执行步骤 103,如果不一致则不满足合并条件,合并不安全,此时放弃合并操作。其中,不同的合并参 量对应的合并条件可能不同,具体请参见后续实施例的描述。
[0068] 步骤103,将CSS文件中的合并参量进行合并,获得CSS压缩文件。
[0069] 将CSS文件
当前第1页1 2 3 4 5 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1