用于对HTML字符串进行预处理的方法及其相关产品技术

技术编号:33243589 阅读:17 留言:0更新日期:2022-04-27 17:50
本发明专利技术的实施方式提供了一种用于对超文本标记语言HTML字符串进行预处理的方法及相关产品。该方法包括:响应于对HTML字符串的处理需求,确定对过滤器的调用策略,其中所述过滤器包括支持对所述HTML字符串进行预处理的第一类过滤器和/或第二类过滤器;根据所述调用策略,注册相应的过滤器;以及调用经注册的过滤器对所述HTML字符串进行预处理。根据本发明专利技术的方案可以综合相应过滤器的优势提高对HTML字符串的预处理效率,使得预处理效果更贴合实际需求。合实际需求。合实际需求。

【技术实现步骤摘要】
用于对HTML字符串进行预处理的方法及其相关产品


[0001]本专利技术的实施方式涉及互联网
,更具体地,本专利技术的实施方式涉及用于对HTML字符串进行预处理的方法、用于执行前述方法的设备和计算机可读存储介质。

技术介绍

[0002]本部分旨在为权利要求书中陈述的本专利技术的实施方式提供背景或上下文。此处的描述可包括可以探究的概念,但不一定是之前已经想到或者已经探究的概念。因此,除非在此指出,否则在本部分中描述的内容对于本申请的说明书和权利要求书而言不是现有技术,并且并不因为包括在本部分中就承认是现有技术。
[0003]在某些场景中(例如题库组卷),数据是以超文本标记语言(Hyper Text Markup Language,HTML)字符串的形式在数据库中存储。在实际应用过程中,浏览器端通过后台接口获取数据库中的HTML字符串后,需要调用DOM API将HTML字符串更新到网页中,以便用户观看内容。这一过程中,若存储的HTML字符串数据完全符合业务需求,则不必做任何修改,直接挂载到网页上即可。若存储的HTML字符串数据不能完全符合业务需求,可能需要对HTML内容进行修改,以便提供更好的内容或展示供用户观看。
[0004]目前,涉及对HTML字符串的修改主要有两种方式。例如,可以先将HTML字符串更新到网页,此时HTML字符串已经被解析为DOM树并挂载到网页,然后对生成的DOM树进行修改。这种修改方式由于是在HTML内容挂载至网页之后进行修改,因此可能会导致网页回流或重绘,并且其性能也比较差,也容易导致页面闪动,从而影响用户体验。
[0005]又例如,还可以先修改HTML字符串,然后再将修改后的HTML内容挂载到网页。这种修改方式由于是在HTML内容挂载至网页之前进行修改,因此修改过程中一般不会导致页面回流或重绘。另外,还具有更好的性能,也不容易导致页面闪动,具有更好的用户体验。
[0006]基于此,目前多采用第二种方式来实现HTML字符串的修改(也即预处理)。具体在对HTML字符串修改过程中,仅使用单一方式进行预处理。例如,可以使用JavaScript语言中正则表达式的方式或者修改DOM节点的方式中的任一方式进行预处理。其中,正则表达式的方式虽然性能好,但仅适用于一些简单修改。即便为了完成预期的目的,也可以书写更复杂的正则表达式或者对字符串做多次处理,但这样的方式通用性差,也会导致工程项目的开发成本高以及可维护性差。而修改DOM节点的方式虽然能够适用于较为复杂的修改,但其耗时较长且性能较差。可以看出,目前对HTML字符串的预处理效果仍然不理想,无法满足实际需求。

技术实现思路

[0007]已知的对HTML字符串的预处理效果不理想,这是非常令人烦恼的过程。
[0008]为此,非常需要一种改进的用于对超文本标记语言HTML字符串进行预处理的方法及其相关产品,可以根据处理需求选用相应的过滤器,以综合相应过滤器的优势提高处理效率,使得预处理效果更贴合实际需求。
[0009]在本上下文中,本专利技术的实施方式期望提供一种用于对超文本标记语言HTML字符串进行预处理的方法及其相关产品。
[0010]在本专利技术实施方式的第一方面中,提供了一种用于对超文本标记语言HTML字符串进行预处理的方法,包括:响应于对HTML字符串的处理需求,确定对过滤器的调用策略,其中所述过滤器包括支持对所述HTML字符串进行预处理的第一类过滤器和/或第二类过滤器;根据所述调用策略,注册相应的过滤器;以及调用经注册的过滤器对所述HTML字符串进行预处理。
[0011]在本专利技术的一个实施例中,确定对过滤器的调用策略包括:确定待调用的过滤器队列及其调用顺序;以及确定每个过滤器队列中包括的过滤器及其调用顺序。
[0012]在本专利技术的另一个实施例中,根据所述调用策略,注册相应的过滤器包括:根据所述过滤器队列的调用顺序,注册相应的过滤器队列;以及根据所述过滤器的类型及所述过滤器的调用顺序,将所述过滤器添加至相应的过滤器队列中。
[0013]在本专利技术的又一个实施例中,其中所述过滤器队列包括第一类过滤器队列,所述第一类过滤器队列包括一个或多个第一类过滤器,其中调用所述第一类过滤器队列中的过滤器对所述HTML字符串进行预处理包括:按照每个所述第一类过滤器的调用顺序依次运行每个所述第一类过滤器执行预处理操作,其中在所述第一类过滤器队列中,上一所述第一类过滤器的输出作为下一所述第一类过滤器的输入。
[0014]在本专利技术的再一个实施例中,其中所述过滤器队列包括第二类过滤器队列,所述第二类过滤器队列包括一个或多个第二类过滤器,其中调用所述第二类过滤器队列中的过滤器对所述HTML字符串进行预处理包括:获取关于所述HTML字符串的待处理DOM树;以及按照每个所述第二类过滤器的调用顺序,依次运行每个所述第二类过滤器执行对所述待处理DOM树的预处理操作,其中在所述第二类过滤器队列中,上一所述第二类过滤器的输出作为下一所述第二类过滤器的输入。
[0015]在本专利技术的一个实施例中,其中获取关于所述HTML字符串的待处理DOM树包括:对所述HTML字符串或经所述第一类过滤器队列中过滤器处理后的HTML字符串进行解析,以得到所述待处理DOM树。
[0016]在本专利技术的另一个实施例中,其中所述方法还包括:根据每个过滤器的运行时间确定待优化的过滤器;以及执行对所述待优化的过滤器的优化操作。
[0017]在本专利技术的又一个实施例中,其中根据每个过滤器的运行时间确定待优化的过滤器包括:统计每个过滤器在预处理过程中的运行时间;计算每个过滤器相对所有过滤器的运行时间占比;以及将运行时间占比大于阈值的过滤器确定为所述待优化的过滤器。
[0018]在本专利技术实施方式的第二方面中,提供了一种设备,包括:处理器;以及存储器,其存储有用于对HTML字符串进行预处理的计算机指令,当所述计算机指令由所述处理器运行时,使得所述设备执行根据前文以及下文多个实施例所述的方法。
[0019]在本专利技术实施方式的第三方面中,提供了一种计算机可读存储介质,包含用于对HTML字符串进行预处理的程序指令,当所述程序指令由处理器执行时,使得所述设备执行根据前文以及下文多个实施例所述的方法。
[0020]根据本专利技术实施方式的用于对HTML字符串进行预处理的方法及其相关产品,可以调用依据调用策略所注册的过滤器对HTML字符串进行预处理,从而能够综合相应过滤器的
优势提高处理效率,使得预处理效果更贴合实际需求。另外,对过滤器的调用策略可以根据处理需求调整,使得过滤器可以根据处理需求进行组合和复用,以满足不同处理需求,具有很好的通用性。此外,在本专利技术的一些实施例中,还可以监督每个过滤器的运行时间,以便优化HTML字符串的预处理速度。
附图说明
[0021]通过参考附图阅读下文的详细描述,本专利技术示例性实施方式的上述以及其他目的、特征和优点将变得易于理解。在附图中,以示例性而非限制性的方式示出了本专利技术的若干实施方式,其中:本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种用于对超文本标记语言HTML字符串进行预处理的方法,其特征在于,包括:响应于对HTML字符串的处理需求,确定对过滤器的调用策略,其中所述过滤器包括支持对所述HTML字符串进行预处理的第一类过滤器和/或第二类过滤器;根据所述调用策略,注册相应的过滤器;以及调用经注册的过滤器对所述HTML字符串进行预处理。2.根据权利要求1所述的方法,其特征在于,确定对过滤器的调用策略包括:确定待调用的过滤器队列及其调用顺序;以及确定每个过滤器队列中包括的过滤器及其调用顺序。3.根据权利要求2所述的方法,其特征在于,根据所述调用策略,注册相应的过滤器包括:根据所述过滤器队列的调用顺序,注册相应的过滤器队列;以及根据所述过滤器的类型及所述过滤器的调用顺序,将所述过滤器添加至相应的过滤器队列中。4.根据权利要求3所述的方法,其特征在于,其中所述过滤器队列包括第一类过滤器队列,所述第一类过滤器队列包括一个或多个第一类过滤器,其中调用所述第一类过滤器队列中的过滤器对所述HTML字符串进行预处理包括:按照每个所述第一类过滤器的调用顺序依次运行每个所述第一类过滤器执行预处理操作,其中在所述第一类过滤器队列中,上一所述第一类过滤器的输出作为下一所述第一类过滤器的输入。5.根据权利要求3或4所述的方法,其特征在于,其中所述过滤器队列包括第二类过滤器队列,所述第二类过滤器队列包括一个或多个第二类过滤器,其中调用所述第二类过滤器队列中的过滤器对所述HTML字符串进行预处理包括:获...

【专利技术属性】
技术研发人员:傅云贵
申请(专利权)人:网易有道信息技术北京有限公司
类型:发明
国别省市:

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

1