我一直在努力清理一个非常混乱的ASP.NET项目,我有一个工具以各种方式衡量项目的复杂性,所以我可以展示我的工作成果:当我清理时,复杂性下降。
我的一个指标是HTML标记行计数,但我已经意识到这不是一个非常好的衡量方法,因为行数在格式化过程中会受到通货膨胀的影响;这个片段:
<span><em>This is bold</em></span>
应与漂亮的印刷版具有相同的分数:
<span>
<em>This is bold</em>
</span>
但只是计算线条显示第二个片段有更多行。
什么是计算标记复杂性的更好方法,捕获结构复杂性,而不仅仅是行计数?
更新:评论者询问复杂性的含义。我的意思是这个页面有多少结构。我最初的例子并不是最好的例子,因为这两个片段是相同的。我的最终目标是将草率的表驱动布局转换为CSS,我想测量多少&#34; less&#34;代码就完成了。简单地计算节点的数量并没有完全得到嵌套结构。是否有一个指标可以捕获节点数和嵌套深度?
答案 0 :(得分:1)
您可以使用agility pack将html代码转换为节点列表,实际上转换为DOM,然后读取节点数。
这是对html页面复杂性的一个很好的衡量。 更少的节点,更简单 html,当您使用javascript搜索时,这样可以更快地找到任何给定元素。
这也是雅虎{/ 3}的参考
其他链接:
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