<script type="text/javascript" src="CRssFeed.js の URI" charset="UTF-8"></script> を入れる。
<head>
…
<script type="text/javascript" src="CRssFeed.js" charset="UTF-8"></script>
…
</head>
<div id="表示箇所の ID 属性値">JavaScript が無効かエラーが発生しているときの文言</div> を入れる。
<body>
…
<div id="BlogSummary">JavaScript が無効か何らかのエラーが発生しています。</div>
…
</body>
<script type="text/javascript"><!--
var CRssFeed クラスオブジェクトの変数名 = new CRssFeed(
'RSS のパス',
document.getElementByID('表示箇所の ID 属性値'),
true
);
CRssFeed クラスオブジェクトの変数名.LoadInterval(true);
// --></script>
<script type="text/javascript"><!--
var BlogSummary = new CRssFeed(
'/myname/iblog/rss.xml',
document.getElementByID('BlogSummary'),
true
);
BlogSummary.LoadInterval(true);
// --></script>
<noscript>JavaScript が使えないブラウザ用の文言</noscript> を入れる。
<noscript>JavaScript が使用できない場合は直接 <a href="/myname/Sites/iblog/index.html">MyBlog</a> を参照するか、<a href="/myname/Sites/iblog/rss.xml">その RSS</a> を参照してください。</noscript>
script タグをサポートしていないウェブブラウザのために、noscript 要素を使ってそこにスクリプト言語があること及び代替手段を利用者に知らせる。とある。ブログの RSS の場合はブログのトップページへのリンクを入れるとよいだろう。
<a href="channel 要素直下の link 要素の内容" title="channel 要素直下の description 要素の内容" hreflang="channel 要素直下の language 要素の内容">channel 要素直下の title 要素の内容</a>
<ol>
<li><a href="item 要素の link 要素の内容" title="item 要素の description 要素の内容をテキスト化したもの" hreflang="channel 要素直下の language 要素の内容">item 要素の title 要素の内容</a></li>
… item 要素の数だけ繰り返される …
</ol>
<a href="index.html"> から </a> までを a 要素という。href="index.html" の href は属性名、index.html は属性値、a 要素の href 属性の値は index.html ということになる。そして開始タグと終了タグの間の内容は子供要素ということになる。
#BlogSummary {
font-size: smaller;
}
#BlogSummary a {
display: none;
}
#BlogSummay ol li a {
display: inline;
}
#BlogSummay ol {
list-style-type: disc;
}
#BlogSummay ol {
padding-left: 2em;
margin-left: 0em;
}
CRssFeed クラスオブジェクトの変数名.LoadInterval(true);
LoadInterval(true) を変えて次のようにする。
CRssFeed クラスオブジェクトの変数名.Load();
LoadInterval(true) の true は最初に RSS の内容を読み取って出力するかどうかを表している。ここを false にすると最初は何も出力されず、したがって、JavaScript が無効かエラーが発生しているときの文言 が表示されたままになり、最初の更新時刻になって初めて RSS の内容と差し替えられる。
CRssFeed クラスオブジェクトの変数名.m_LoadInterval = 30 * 60 * 1000;
デフォルトでは CRssFeed クラスオブジェクトは非同期に動作する。つまり、LoadInterval や Load が実行されても、その動作中にブラウザは次の処理に進むことができる。このため RSS の表示部分以降の描画が続行され、その間に RSS の読み取りと表示が並行して行われる。そうすると大抵の場合は web ページ全体が表示されきる時間が短くなるというメリットがある。
しかし、RSS の表示部分以降の描画が進んでから後で RSS 表示部分の内容が描画されるので、表示上関連する部分の再配置が行われる。これが気分が悪い場合もあるだろう。また、ブラウザが消費するメモリを節約するために JavaScript を理解している人は CRssFeed クラスオブジェクトの再利用をしたくなるかもしれない。このとき非同期で動作していると都合が悪い。
そこで、非同期(並行動作)ではなく、LoadInterval や Load が実行されたらそれが完了するまで次の処理に進まないようにするにはステップ 3 の
true
とだけ書いてある行を
false
上記手順で示したコードは HTML 用である。HTML では scirpt 要素で JavaScript を書くとき、その script 要素の内容をコメントにして script 要素を理解しないブラウザに JavaScript コードが表示されてしまうのを防ぐのが通常だ。
しかしながら XHTML で web ページを記述していてなおかつそれが web サーバによってそのページのメディアタイプが application/xhtml+xml、application/xml、text/xml などとされる場合はこの措置はまずい。なぜならば XML では -- したがって XHTML では -- コメントは本当にコメントとして扱われてしまうからだ。このため <!-- --> で囲まれた部分は JavaScript コードではなくコメントとされてしまう。その場合は <!-- --> の代わりに <![CDATA[ ]]> を使えばよい。
しかし、多くの場合は XHTML で書かれた web ページであってもそうする必要は無い。というのは拡張子が html のとき web サーバはそのページのメディアタイプを text/html とする場合が多いからである。少なくとも .Mac の web サーバはそうなっている。