1

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

抓取正在运行的应用程序

临:

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

缺点:

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

离线抓取 HTML 模板

优点:

  • 您只需验证每个组件一次。
  • 如果您发现问题,您将确切知道是哪个组件导致了它。

缺点:

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

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

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

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

4

1 回答 1

1

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

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

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

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

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

于 2010-02-05T17:34:56.423 回答