5

私は PHP で開発しており、動的/可変コンテンツの周りにいくつかの html ラッパー (スタイル付き div) を使用しています。つまり、標準のテンプレートを複数回使用し、さまざまな HTML で埋めて、似たような「モジュール」を作成しています。また、jQuery を使用して、ユーザーの操作に基づいてコンテンツを動的に更新しています。各モジュールには、jQuery にユーザー インタラクションの処理方法を指示するための追加情報が必要です。これを達成するために、マイクロデータとデータ属性のどちらを使用するか迷っています。例:

<script>
  $(document).ready(function() {
    eval($(".wrapper").children("meta[itemprop=userDoesSomething]").attr("content"));
  });
</script?
<div itemscope class="wrapper" id="module1">
  <meta itemprop="userDoesSomething" content="alert('Microdata is better!');">
  Module-specific content
</div>

また

<script>
  $(document).ready(function() {
    eval($(".wrapper").data("userDoesSomething"));
  });
</script>
<div class="wrapper" id="module1" data-userDoesSomething="alert('Data attributes are better!');">
  Module-specific content
</div>

どちらも同じことを達成しますが、microdata を使用すると、ラッパーのタグに属性を挿入する必要がありません。メタ タグを使用してラッパー内に「データ」を含めるだけで、ラッパー テンプレートはそのまま維持できます。また、microdata は実際には型付きデータを対象としているため、おそらく data 属性の方が適切であると認識していますが、この場合はより便利です。長期的にはどちらが優れているかについて何か考えはありますか?

4

1 に答える 1

4

どちらの方法も可能です。

microdata は「型付きデータ」だけのものではありません。必要に応じて、独自の Microdata 語彙を定義できます。ただし、「ローカル」のものを使用することもできます(強調鉱山):

前のセクションの例は、microdata の再利用を想定していないページで情報をマークアップする方法を示しています。ただし、microdata が最も役立つのは、他の作成者や読み取り者が協力してマークアップを新たに使用できる状況で使用される場合です。

ただし、将来、ページで他の Microdata ボキャブラリ ( schema.org など) を使用する場合、「ローカル」Microdata との競合が発生する可能性があります。data-*したがって、属性よりもメリットがない場合は、Microdata を使用しません。

meta要素について:data-*属性でも同様のものを取得できます。HTML5 ではscript要素は「データ ブロック」に使用できます。したがって、次のようなものを使用できます。

<div class="wrapper" id="module1">
  <script type="text/plain" data-userDoesSomething="alert('Data attributes are better!');">
  </script>
  Module-specific content
</div>

<div class="wrapper" id="module1">
  <script type="text/plain" data-userDoesSomething>
    alert('Data attributes are better!');
  </script>
  Module-specific content
</div>

<!-- etc. -->

の代わりにtext/plain、ニーズに合ったもの (JSON、HTML など) を使用できます。

于 2013-10-02T10:08:23.820 に答える