我在大规模,大量,面向公众的Web应用程序上工作。应用程序的成功运行对业务非常重要,因此有许多与此相对应的MI工具。
这些MI工具之一实质上是针对每个页面请求查看发送到浏览器的html(我已经对其进行了很多简化,但是出于这个问题的目的,它是一种对html进行分析的工具)
为了使该MI工具获取所需的数据,我们将meta数据放在head元素中。目前,我们将其作为html注释:
<!doctype html>
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en" class="">
<head>
<!-- details = 52:AS6[rxSdsMd4RgYXJgeabsRAVBZ:0406139009] -->
<!-- policy id = 1234567890 -->
<!-- party id = 0987654321 -->
<!-- email address = user@email.com -->
<!-- error = 49 -->
<!-- subsessionid = bffd5bc0-a03e-42e5-a531-50529dae57e3-->
...
该工具只需使用正则表达式查找给定的元数据注释
由于此数据是元数据,因此我想将其更改为html meta标签,因为它在语义上感觉正确。像这样:
<!doctype html>
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en" class="">
<head>
<meta name="details" content="52:AS6[rxSdsMd4RgYXJgeabsRAVBZ:0406139009]" />
<meta name="policyId" content="1234567890" />
<meta name="partyId" content="0987654321" />
<meta name="emailAddress" content="user@email.com" />
<meta name="error" content="49" />
<meta name="subsessionid" content="bffd5bc0-a03e-42e5-a531-50529dae57e3" />
...
感觉更语义化,我可以让MI工具使用它而没有问题-只是更改正则表达式的一种情况。但是现在它给我w3c验证程序一个问题。由于我使用的元名称无法识别,因此无法验证。我收到错误“元素元上属性名称的错误值详细信息:关键字详细信息未注册”。并且建议我在WHATWG Wiki上注册这些名称值。
虽然我可以这样做,但感觉并不正确。我的一些元标记是“通用的”(例如error和emailAddress),因此我可能可以找到一个已经注册的名称值并使用它。但是,大多数都是特定于行业/组织的。注册名为subsessionid或partyId的公共名称值是错误的,因为这些特定于我的组织和应用程序。
因此,问题是-在这种情况下,什么是最佳做法?我应该将它们保留为html注释吗?我应该像上面那样使用元标记,而不用担心w3c验证失败吗?(尽管这对组织越来越重要)我是否应该尝试在WHATWG Wiki上注册我的元名称值,但是知道它们不是很通用?还是有其他解决方案?
欣赏您的想法,欢呼
内森
编辑以显示最终解决方案:
我要使用的完整答案如下。它基于Rich Bradshaws的答案,因此他的答案是可以接受的,但这是我为了完整起见要采取的措施:
<!doctype html>
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en" class="">
<head>
<meta name="application-name" content="Our app name"
data-details="52:AS6[rxSdsMd4RgYXJgeabsRAVBZ:0406139009]"
data-policyId="1234567890"
data-partyId="0987654321"
data-emailAddress="user@email.com"
data-error="49"
data-subsessionid="bffd5bc0-a03e-42e5-a531-50529dae57e3"
/>
...
这可以验证,因此所有方框均打勾:)