今のような方向性でこのままエントリーを書き続けていくと(エントリーごとに小さい画像を貼り付けるだとか、もっと根本的な点では背景画像の繰り返しなどを考えると)、もう少しエントリーが増えてしまったら IE つまり UA 業界を席捲しイラク戦争時の二世アメリカ大統領に対するアメリカ国民の支持率ほどの高数値で最も利用され今となっては CSS を駆使するウェブマスターすなわちサイト管理者の頭痛の種でしかないゲイツブラウザなどでは物凄いスクロールが重くなってあまり喜ばしくない事態になるというか既にどのページを見ても IE では重いという驚愕の事実を避けては通れないのだけれど、せめてもの人道的配慮というような雰囲気のアレでもって何とか軽くできないか、ということをちょっと真剣に考えてみた。恐らくは半透明 PNG をテキストの背景に敷き詰めていることが原因なのだけれど、これを取り払ってしまってはハッタリの効かない見てくれになり実に貧相な中身であるということがものの見事に見破られてしまうのであまり喜ばしくない事態になるというか既に既知の事実であるから割とどうでもいいかとも思った。
要はこの PNG が繰り返されすぎなければ多少は軽くなるのではないか、という。というわけで、エントリーがアホみたいに増えても描画面積がアホみたいに増えないようにすれば良いわけで、それはつまりエントリーひとつが増えるにつれ背景画像面積が領域を増すことの比例定数みたいなそういうアレを多少なりとも減らしていけば焼け石に水となってスクロール時などにおける重さはやや軽くなるかも知れないということである、と。で、どうしたかと言うと、(カテゴリーページのアーカイブだけ試験的に)アーカイブページにはそのカテゴリーの最新三件のエントリーだけ全表示させ、残り(カテゴリー内全エントリー数から最新三件を除いたエントリー)はエントリータイトルと概要を定義リストで表示させるようにしましたよ、とか。そういう。それだけ。
要するにどういうことか、というのはソースを見た方が早いかも。
- 従来のカテゴリーアーカイブテンプレート(部分抜粋)
-
<div id="main">
<h2>Archives</h2>
<MTEntries sort_order="ascend">
<$MTEntryTrackbackData$>
<div class="body">
<div class="entry_header">
<MTEntryCategories><h3 id="a<$MTEntryID pad="1"$>" class="category_<$MTCategoryLabel$>"><a href="<$MTEntryPermalink$>"><$MTEntryTitle$></a></h3>
</MTEntryCategories>
<ul>
<li class="entry_category"><MTEntryCategories glue=" : "><a href="<$MTCategoryArchiveLink$>?<$MTCategoryCount$>"><$MTCateg
oryLabel$></a></MTEntryCategories></li>
<li class="entry_date"><$MTEntryDate format="%Y-%m-%dT%H:%M:%S+09:00"$></li>
</ul>
</div>
<div class="entry_body">
<$MTEntryBody$>
<MTEntryIfExtended>
<div id="entry_extended">
<$MTEntryMore$>
</div>
</MTEntryIfExtended>
</div>
<div class="entry_footer">
<MTEntryIfAllowComments>
<h4><a href="<$MTEntryPermalink$>#comments">Comments <span class="count"><$MTEntryCommentCount$></span></a></h4>
</MTEntryIfAllowComments>
<MTEntryIfAllowPings>
<h4><a href="<$MTEntryPermalink$>#trackback">TrackBack <span class="count"><$MTEntryTrackbackCount$></span></a></h4&g
t;
</MTEntryIfAllowPings>
</div>
</div>
</MTEntries>
</div>
- 書き換えたカテゴリーアーカイブテンプレート(部分抜粋)
-
<div id="main">
<h2>Archives</h2>
<MTEntries sort_order="descend" lastn="3">
<$MTEntryTrackbackData$>
<div class="body">
<div class="entry_header">
<MTEntryCategories><h3 id="a<$MTEntryID pad="1"$>" class="category_<$MTCategoryLabel$>"><a href="<$MTEntryPermalink$>"><$MTEntryTitle$></a></h3>
</MTEntryCategories>
<ul>
<li class="entry_category"><MTEntryCategories><a href="<$MTCategoryArchiveLink$>?<$MTCategoryCount$>"><$MTCateg
oryLabel$></a></MTEntryCategories></li>
<li class="entry_date"><$MTEntryDate format="%Y-%m-%dT%H:%M:%S+09:00"$></li>
</ul>
</div>
<div class="entry_body">
<$MTEntryBody$>
<MTEntryIfExtended>
<div id="entry_extended">
<$MTEntryMore$>
</div>
</MTEntryIfExtended>
</div>
<div class="entry_footer">
<MTEntryIfAllowComments>
<h4><a href="<$MTEntryPermalink$>#comments">Comments <span class="count"><$MTEntryCommentCount$></span></a></h4>
</MTEntryIfAllowComments>
<MTEntryIfAllowPings>
<h4><a href="<$MTEntryPermalink$>#trackback">TrackBack <span class="count"><$MTEntryTrackbackCount$></span></a></h4&g
t;
</MTEntryIfAllowPings>
</div>
</div>
</MTEntries>
<MTEntries lastn="1" offset="3">
<div class="body">
<div class="entry_header">
<MTEntryCategories><h3 class="category_<$MTCategoryLabel$>"><$MTCategoryLabel$> Archive</h3></MTEntryCategories>
<ul>
<li class="entry_category"><MTEntryCategories><a href="<$MTCategoryArchiveLink$>?<$MTCategoryCount$>"><$MTCateg
oryLabel$></a></MTEntryCategories></li>
<li class="entry_date"><$MTEntryDate format="%Y-%m-%dT%H:%M:%S+09:00"$></li>
</ul>
</div>
<div class="entry_body">
<dl>
<MTEntries sort_order="descend" offset="3" lastn="10000">
<dt><a href="<$MTEntryPermalink$>"><$MTEntryTitle$></a></dt>
<dd><$MTEntryExcerpt$></dd>
</MTEntries>
</dl>
</div>
<div class="entry_footer">
<h4><a href="#header">このページのトップへ</a></h4>
</div>
</div>
</MTEntries>
</div>
lastn="10000"
とか嘘くさい数値を入れているのは offset
使用時に lastn
が必須だから、ということに対するいかにも頭の悪い対処策であってあまりお勧めではないというか。PHP での問題は解決している ので MTPaginate でも入れてページ分割すれば良かったのだけれど、1 だの 2 だの All Pages だののマークアップは ol かなぁしかし数字だけのナビゲーションというのもまた微妙だなぁとか面倒なことを考えるくらいだったら適当にテンプレート書き換える方が手早く済むとかそういうことであって。どうでもいいけど MTPagenate というミススペルのページが意外に多くてというか自分で検索したときにスペルを間違え「どうして配布元のページが引っかからないんだろう」と悩んだなどという間抜けな行為を自分では笑えないなと思った。
よくよく考えたらアーカイブページでは追記(extend)内容も全表示させているので結構重くなる傾向にあるということであって、これも何かしら対策が必要だと思った。というか表示させなければいいのだけれど。
どのみち IE は半透明 PNG に対応していないので IE のみ背景画像を読み込ませない(CSS で import 時にあれやこれや小細工というかメディアタイプ指定)ようにすれば万事解決っぽい雰囲気であったけれどもはや分割してしまったしまぁいいかと思った。面倒くさい。