层叠样式表文件的处理方法、装置、设备及存储介质制造方法及图纸

技术编号:27059132 阅读:10 留言:0更新日期:2021-01-15 14:38
本申请实施例涉及一种层叠样式表文件的处理方法、装置、设备及存储介质,包括:获取待处理的层叠样式表文件、以及所述层叠样式表文件对应的标记语言文件;生成所述标记语言文件的第一抽象语法树,以及在确定所述标记语言文件中包含动态元素时,对所述第一抽象语法树进行拆分,得到至少一个第二抽象语法树;获取所述层叠样式表文件中包含的多个样式规则;从所述多个样式规则中确定与至少一个所述第二抽象语法树相匹配的目标样式规则;基于所述目标样式规则生成目标层叠样式表文件。由此,可以实现将层叠样式表文件中的冗余样式规则删除,从而缩减网页文件体积,进而提高网页文件加载速度。

【技术实现步骤摘要】
层叠样式表文件的处理方法、装置、设备及存储介质
本申请涉及计算机
,尤其涉及一种层叠样式表文件的处理方法、装置、设备及存储介质。
技术介绍
CSS(CascadingStyleSheets层叠样式表)是一种用来表现HTML(HyperTextMarkupLanguage,超文本标记语言)、XML(eXtensibleMarkupLanguage,可扩展标记语言)等文件样式的计算机语言,不仅可以静态地修饰网页,还可以配合各种脚本语言对网页中的元素进行格式化。目前,随着计算机技术的不断发展和用户需求的日益更新,网页设计变更频繁,随着网页设计变更,网页的CSS文件中很可能会出现越来越多无用的样式规则(可称冗余样式规则),这将导致网页文件的体积越来越大,进而影响网页文件的加载速度。
技术实现思路
本申请实施例的目的在于提供一种层叠样式表文件的处理方法、装置、设备及存储介质,以实现将层叠样式表文件中的冗余样式规则删除,从而缩减网页文件体积,进而提高网页文件加载速度的有益效果。具体技术方案如下:本申请提供一种层叠样式表文件的处理方法,所述方法包括:获取待处理的层叠样式表文件、以及所述层叠样式表文件对应的标记语言文件;生成所述标记语言文件的第一抽象语法树,在确定所述标记语言文件中包含动态元素时,对所述第一抽象语法树进行拆分,得到至少一个第二抽象语法树;获取所述层叠样式表文件中包含的多个样式规则;从所述多个样式规则中确定与至少一个所述第二抽象语法树相匹配的目标样式规则;基于所述目标样式规则生成目标层叠样式表文件。本申请提供一种层叠样式表文件的处理装置,所述装置包括:文件获取模块,用于获取待处理的层叠样式表文件、以及所述层叠样式表文件对应的标记语言文件;树生成模块,用于生成所述标记语言文件的第一抽象语法树,在确定所述标记语言文件中包含动态元素时,对所述第一抽象语法树进行拆分,得到至少一个第二抽象语法树;样式获取模块,用于获取所述层叠样式表文件中包含的多个样式规则;样式匹配模块,用于从所述多个样式规则中确定与至少一个所述第二抽象语法树相匹配的目标样式规则;文件生成模块,用于基于所述目标样式规则生成目标层叠样式表文件。本申请提供了一种设备,包括处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过通信总线完成相互间的通信;存储器,用于存放计算机程序;处理器,用于执行存储器上所存放的程序时,实现上述各种可选实现方式中提供的方法。本申请提供一种存储介质,所述存储介质中存储有计算机指令,当其在计算机上运行时,使得计算机执行上述各种可选实现方式中提供的方法。本申请提供一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。电子设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该电子设备执行上述各种可选实现方式中提供的方法。本申请实施例提供的技术方案,通过在标记获取待处理的层叠样式表文件、以及层叠样式表文件对应的标记语言文件,生成标记语言文件的第一抽象语法树,在确定标记语言文件中包含动态元素时,对第一抽象语法树进行拆分,得到至少一个第二抽象语法树,获取层叠样式表文件中包含的多个样式规则,从多个样式规则中确定与至少一个第二抽象语法树相匹配的目标样式规则,基于目标样式规则生成目标层叠样式表文件,可以实现将层叠样式表文件中的冗余样式规则删除,从而缩减网页文件体积,进而提高网页文件加载速度。进一步,在标记语言文件中包含动态元素的情况下,通过对标记语言文件的第一抽象语法树进行拆分,得到能够完整、准确表示标记语言文件结构的至少一个第二抽象语法树,之后基于该至少一个第二抽象语法树确定标记语言文件中的目标样式规则,即有效样式规则,则可以实现有效避免将有效样式规则错误识别为冗余样式规则。附图说明此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本申请的实施例,并与说明书一起用于解释本申请的原理。为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。图1为本申请实施例提供的一种层叠样式表文件的处理方法的实施例流程图;图2为文件选择界面的示意图;图3为第一抽象语法树的一种示例;图4为第一抽象语法树的另一种示例;图5为第二抽象语法树的一种示例;图6为第二抽象语法树的另一种示例;图7为第一抽象语法树的又一种示例;图8为第二抽象语法树的又一种示例;图9为第一抽象语法树的再一种示例;图10为第二抽象语法树的再一种示例;图11为本申请实施例提供的一种步骤105的实现流程;图12为本申请实施例提供的一种层叠样式表文件的处理装置的实施例框图;图13为本申请实施例提供的一种的设备的结构示意图。具体实施方式为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请的一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本申请保护的范围。为便于对本申请实施例的理解,下面首先对本申请实施例涉及到的一些概念名词进行简要说明:1、标记语言:标记语言,也称置标语言,是一种将文本以及文本相关的其他信息结合起来,展现出关于文档结构和数据处理细节的电脑文字编码。如今广泛使用的标记语言包括但不限于:HTML、XML、WXML(WeiXinMarkupLanguage,微信标记语言等),其中,WXML应用于微信小程序中,用于指定微信小程序界面的框架结构。2、层叠样式表:层叠样式表是一种用来用来表现HTML、XML等文件样式的计算机语言,不仅可以静态地修饰网页,还可以配合各种脚本语言对网页中的元素进行格式化。进一步,微信层叠样式表是一套样式语言,用于描述微信标记语言的组件样式,即,微信层叠样式表用来决定微信标记语言的组件应该怎么显示。与WXML相同,微信层叠样式表文件也应用于微信小程序中,用于指定微信小程序界面的框架及元素的显示样式。3、样式规则、样式选择器:CSS文件中包含的即是各种样式规则,样式规则由样式选择器和声明块构成。其中,样式选择器用于声明要作用的对象,包括但不限于:类选择器、元素选择器、属性选择器、通配选择器等。声明是对具体样式规则的描述,由属性和值组成。举例来说,下述为一个样式规则的示例:.first{//样式选择器,要作用的对象为属性class=“first”的元素;co本文档来自技高网...

【技术保护点】
1.一种层叠样式表文件的处理方法,其特征在于,包括:/n获取待处理的层叠样式表文件、以及所述层叠样式表文件对应的标记语言文件;/n生成所述标记语言文件的第一抽象语法树,在确定所述标记语言文件中包含动态元素时,对所述第一抽象语法树进行拆分,得到至少一个第二抽象语法树;/n获取所述层叠样式表文件中包含的多个样式规则;/n从所述多个样式规则中确定与至少一个所述第二抽象语法树相匹配的目标样式规则;/n基于所述目标样式规则生成目标层叠样式表文件。/n

【技术特征摘要】
1.一种层叠样式表文件的处理方法,其特征在于,包括:
获取待处理的层叠样式表文件、以及所述层叠样式表文件对应的标记语言文件;
生成所述标记语言文件的第一抽象语法树,在确定所述标记语言文件中包含动态元素时,对所述第一抽象语法树进行拆分,得到至少一个第二抽象语法树;
获取所述层叠样式表文件中包含的多个样式规则;
从所述多个样式规则中确定与至少一个所述第二抽象语法树相匹配的目标样式规则;
基于所述目标样式规则生成目标层叠样式表文件。


2.根据权利要求1所述的方法,其特征在于,所述确定所述标记语言文件中包含动态元素,包括:
若所述标记语言文件中包含设置有控制属性的元素,则将所述设置有控制属性的元素确定为动态元素;所述控制属性至少包括:if属性、else属性、elif属性。


3.根据权利要求2所述的方法,其特征在于,所述对所述第一抽象语法树进行拆分,得到至少一个第二抽象语法树,包括:
在所述标记语言文件中包含设置有if属性的元素的情况下,获取所述第二抽象语法树至少包括以下一种:
将所述第一抽象语法树中包含if属性的树节点删除,得到第二抽象语法树;
将所述第一抽象语法树作为一个所述第二抽象语法树。


4.根据权利要求2所述的方法,其特征在于,所述对所述第一抽象语法树进行拆分,得到至少一个第二抽象语法树,包括:
在所述标记语言文件中包含设置有if属性的元素、以及设置有else属性的元素的情况下,获取所述第二抽象语法树至少包括以下一种:
将所述第一抽象语法树中包含if属性的树节点删除,得到第二抽象语法树;
将所述第一抽象语法树中包含else属性的树节点删除,得到第二抽象语法树。


5.根据权利要求2所述的方法,其特征在于,所述对所述第一抽象语法树进行拆分,得到至少一个第二抽象语法树,包括:
在所述标记语言文件中包含设置有if属性的元素、以及设置有elif属性的元素的情况下,获取所述第二抽象语法树至少包括以下一种:
将所述第一抽象语法树中包含if属性的树节点删除,得到第二抽象语法树;
将所述第一抽象语法树中包含elif属性的树节点删除,得到第二抽象语法树;
将所述第一抽象语法树中包含if属性的树节点、以及包含elif属性的树节点删除,得到第二抽象语法树。


6.根据权利要求2所述的方法,其特征在于,所述对所述第一抽象语法树进行拆分,得到至少一个第二抽象语法树,包括:
在所述标记语言文件中包含设置有if属性的元素、设置有elif属性的元素,以及设置有else属性的元素的情况下,获取所述第二抽象语法树至少包括以下一种:
将所述第一抽象语法树中包含if属性的树节点、以及包含elif属性的树节点删除,得到第二抽象语法树;...

【专利技术属性】
技术研发人员:丘利俊
申请(专利权)人:微民保险代理有限公司
类型:发明
国别省市:广东;44

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1