【问题标题】:What is the best way to validate markup in a component-based web framework?在基于组件的 Web 框架中验证标记的最佳方法是什么?
【发布时间】:2010-02-05 15:39:04
【问题描述】:

如果您使用的是基于组件(又名 Pull-based)的 Web 框架(例如 Tapestry、Wicket 等),您如何确定您的标记是否通过了 W3C 验证?想到了两种方法:

抓取正在运行的应用

专业版:

  • 验证所需的所有标记都存在于页面上。

缺点:

  • 点击每个页面和每个案例可能非常复杂。
  • 如果出现问题,可能不清楚是哪个组件导致了问题(尤其是在大型应用中)。
  • 您可能会一遍又一遍地验证同一个组件(重复工作)。
  • 如果页面/组件很多,可能需要很长时间。

离线抓取 HTML 模板

优点:

  • 您只需验证每个组件一次。
  • 如果您发现问题,您将确切知道是哪个组件造成的。

缺点:

我能想到的大多数缺点都涉及丢失组件的上下文,因为您不会拥有页面的完整标记。

  • 您可能不知道给定组件的 DOCTYPE。
  • 可能很难知道组件的父级是什么,这可能会导致问题。例如。检测包含块标记(例如 <form><p>)的内联标记(例如 <span>)的无效大小写。
  • 这些类型的框架中的 HTML 模板通常包含无效的属性和特殊符号(通常用于向框架指示某些内容),这些将无法验证。

所以问题是,如果您使用的是基于组件的架构,您如何验证您的标记?是否有任何推荐的技术或更好的工具来做到这一点?

编辑:我有点惊讶没有更多的答案。使用基于组件的框架时验证标记是否不常见?还是只是没有多少人在使用它们?

【问题讨论】:

    标签: html validation w3c web-frameworks


    【解决方案1】:

    您确实希望使用完整的服务文档来完成大部分此类验证和测试。这可以确保您验证的内容确实是 Web 浏览器看到的内容。

    根据您必须验证的 url 数量,一个不错的选择是使用 WDG 的批处理验证器服务。

    http://htmlhelp.org/tools/validator/batch.html.en

    或者 wdg 和 w3c 有一个离线验证器,您可以将其与脚本一起使用来汇总测试结果。一个快速的谷歌搜索会给你一些,如果你愿意的话,他们自己也不难。

    您需要自己生成 url 列表,可以使用爬虫脚本,也可以从您的数据库中生成。如果您的某些页面包含无法被最终用户“破坏”的动态内容,您可以减少实际验证的页面数量。

    【讨论】:

    • 您知道这些验证器是检查 HTTP 标头中的内容还是只是处理标记?例如,它会捕获具有 XHTML1 DOCTYPE 的标记和包含 text/html 的 Content-Type 的标头之间的冲突吗?如果没有,那么我可以直接喂它。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-08-01
    • 2018-04-26
    • 1970-01-01
    • 1970-01-01
    • 2011-04-09
    • 2013-08-27
    • 1970-01-01
    相关资源
    最近更新 更多