イントロダクション
ブラウザへ配信される web ページのデータ量は少なければ少ないほどよいでしょう。Web ページのデータ量を削減すると、通信の負荷軽減や、ブラウザでの負荷の軽減など、様々なメリットがあります。
さて、Google のブログサービス「Blogger」でブログを作っている場合、ブログの構造を形づけるテンプレートの HTML を独自に改造することがあると思います。
そのときに、改造した個所や意図を示す目的で、HTML のコメント(<!-- -->)を挿入することがあると思います。
しかし、そのコメントはブログを運営する上では非常に重要なものですが、ページを閲覧するユーザにとっては関係のないものです。むしろ、サーバからダウンローされるデータ量が増えてしまうため、デメリットになってしまうものです。
そのため、Blogger のテンプレートにコメントは残しつつ、Blogger のサーバから配信されるブログページのデータ量を減らす方法を考えました。
Blogger のテンプレートに書き込んだコメントがブラウザへ配信されないようにする
Blogger のテンプレートにコメントは残したい。でも、ブラウザへコメントが配信されたくないといった場合に活用できるのが、Blogger のテンプレートの中で使用できるレイアウト用のタグです。
今回は、b:if タグを用いて、コメントをクライアントへ配信されないようにしました。
Blogger のテンプレートにコメントを書きつつ、ブラウザへ配信されないようにするには、次のように記述します。
1行のコメントの場合
<b:if cond='0!=0'><!-- ここにコメントを書く --></b:if>複数行のコメントの場合
<b:if cond='0!=0'><!--
ここにコメントを書く
ここにコメントを書く
-->
</b:if>
b:if は、条件が成立した場合のみ、その中のデータを Blogger のサーバから出力されるドキュメントに含めるというタグです。
b:if の cond='' の部分に、条件を記載します。
ここでは、0 != 0 という条件(0 が 0 ではなかったら、条件が成立する)を記載しているため、絶対にこの条件が成立することがありません。
従って、Blogger のサーバで b:if 内のデータは省かれて、ブラウザ側に配信されません。
メモ:b:if で書けない書き方
なお、b:if で条件が成立しないものを探す過程で、以下のパターンを試してみましたが、以下のパターンではいずれも期待する結果にならないか、エラーになってしまったため、使えませんでした。cond='0' の場合
<b:if cond='0'><!-- ここにコメントを書くcond='0' -->
</b:if>
→ 一般的なプログラミング言語では、if 文の条件部分に 0 を指定すると、条件が成立しませんが、Bloger の b:if の場合、0 を指定したら条件が成立しているようで、b:if の中身のデータが出力されていました。
cond=0の場合
<b:if cond=0><!-- ここにコメントを書くcond=0 -->
</b:if>
→ cond=0 の場合には、以下のエラーがテンプレート編集時に表示されたため、使えません。
テンプレート プレビューを読み込めませんでした: XML の解析中にエラーが発生しました。行 9、列 12: Open quote is expected for attribute "{1}" associated with an element type "cond".
cond='false'の場合
<b:if cond='false'><!-- ここにコメントを書くcond='false' -->
</b:if>
→ 一般的なプログラミング言語では、if 文の条件部分に false を指定すると、条件が成立しませんが、Blogger のテンプレートでは、プレビュー結果の画面に以下のエラーが表示されたため、使えませんでした。
LHS of numeric is null before 5 in false
まとめ
以上の方法を使用することにより、テンプレート中のコメントをブラウザへ配信しないようにすることができます。快適なブログを作れるように、いろいろと工夫をしていきたいところです。
コメントを投稿
コメント投稿機能について