html - 有没有办法衡量 HTML 标记的复杂性?

标签 html asp.net dom

<分区>

我一直致力于清理一个非常困惑的 ASP.NET 项目,并且我有一个工具可以以各种方式衡量项目的复杂性,因此我可以展示我的工作结果:随着我清理,复杂性消失了下。

我的指标之一是 HTML 标记行数,但我意识到这不是一种很好的衡量方法,因为行数在格式化过程中会膨胀;这个片段:

<span><em>This is bold</em></span>

应该与 pretty-print 版本具有相同的分数:

<span>
  <em>This is bold</em>
</span>

但简单地计算行数会显示第二个片段有更多行。

有什么更好的方法来计算标记的复杂性,捕捉结构的复杂性,而不仅仅是行数?

更新:评论者询问我所说的复杂性是什么意思。我的意思是指页面具有多少结构。我原来的例子不是最好的例子,因为这两个片段是相同的。我的最终目标是将草率的表格驱动布局转换为 CSS,并且我想测量完成后有多少“更少”的代码。简单地计算节点数并不能完全了解嵌套结构。是否有一个指标可以捕获节点数和嵌套深度?

最佳答案

您可以使用 agility pack将您的html代码转换为节点列表,实际上是DOM,然后读取节点数。

这是对 html 页面复杂性的一个很好的衡量。 节点越少,复杂度越低,当您使用 javascript 搜索时,html 的结果是可以更快地找到任何给定元素。

这也是对 Best Practices for Speeding Up Your Web Site 的引用通过雅虎

其他链接:
How to use HTML Agility pack
How to get the count of tables in an html file with C# and html-agility-pack
Count specific child nodes with HtmlAgilityPack

关于html - 有没有办法衡量 HTML 标记的复杂性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25325854/

相关文章:

html - 打印被 bootstrap 打乱

html - 使用 CSS 更改 svg 图像的颜色

javascript - 数字输入中缺少前导零

javascript - 如何通过 JavaScript 清除自定义验证器错误消息

asp.net - 获取 ASP.NET 中所有事件 session 的列表

html - 如何覆盖用户代理样式?

asp.net - 如何通过 Attach 方法使用 Linq 更新数据

javascript - $(document).on() 只适用于一个动态元素,我该如何解决这个问题?

javascript - 为什么 onload 事件在使用 window.open 打开的选项卡上不起作用?

javascript - 两个 SVG 元素接触时的事件