コンテンツの読み込みに時間がかかっています

blog2014 のテーマをさらに改造し blog2560 をつくる

少し前に 2560px 対応にしたのですが、もう少し改良した点をご紹介しておきます。ちなみに、皆さんのブラウザには、どんな感じに表示されていますか? ディスプレイの解像度が高いと、上記のような横に3つのエントリーが並ぶようなレイアウトになるようになっています。

エントリーの続きを読むを Ajax 読み込みする

Ajax読み込みが簡単にできる a-blog cms では、Post_include という名前で呼ばれる機能として用意されています。これを使う事で、CMS のテンプレートを簡単に書くだけで画面の遷移無しに後半のエントリーが表示されます。

Entry_Body の中にある「続きを読む」のリンクのあたりに以下のフォームを追加します。

<p class="continueLink clear"><a href="{continueUrl}">「{continueName}」の続きを読む</a></p>

<form action="{continueUrl}" method="post" class="js-post_include">
<input type="hidden" name="tpl" value="include/continue.html">
<input type="submit" name="ACMS_POST_2GET" value=" 「{continueName}」の続きを読む ">
</form>

あとは、include/continue.html のファイルを準備します。この Entry_Continue のモジュールはコンフィグの一覧にも載ってないですが、今回のように続き部分を表示させるために利用します。

include/continue.html

<!-- BEGIN_MODULE Entry_Continue -->
<!--#include file="/include/unit.html"-->
<!-- END_MODULE Entry_Continue -->

Post_Include 後に JavaScript を起動する

最近、追加されたのか、私が知らなかっただけなのか、現状のバージョンでは FORMタグに onreset という属性を設定します。こうする事で vgrid の JavaScript が動くようになり、長くなったエントリー分で下にあったコンテンツが移動していきます。

<form action="{continueUrl}" method="post" class="js-post_include"  onreset="vgridStart();">

Google アナリティクスにも通知する

ページの遷移がなく各エントリーが読まれるようになると、PVが減っていくというか、どこが読まれているのか分からない状態になります。その部分を解決するために、Google アナリティクス のバーチャルページビュー という機能を使って Post include でコンテンツが呼び出された時には、そのページを見た事にする設定をします。

今は新旧の書き方がありますが、新しい方のユニバーサルアナリティクスの設定で紹介しておきます。submit ボタンを以下のように onclick を追記します。

<input type="submit" name="ACMS_POST_2GET" value=" 「{continueName}」の続きを読む " onClick="ga('send', 'pageview', \{'page': '/{entry:loop.ecd}', 'title': '{continueName}'\});" />

波括弧 { } がテンプレート上に書いてあると、変数として扱われてしまうために、カッコと、その間に書かれた文字が処理されて消えてしまいます。そのために波括弧の前にはバックスラッシュをつけてエスケープする必要があります。

オマケ: Entry_Body も Ajax 読み込みで増やす

せっかくなので、古い記事を読み込む部分も Post include を利用してみるようにします。

<!-- BEGIN forwardLink -->
<form action="{url}" method="post" class="js-post_include">
<input type="hidden" name="tpl" value="/include/entryBody.html" />
<input type="hidden" name="page" value="{forwardPage}" />
<input type="submit" name="ACMS_POST_2GET" value=" もっと読む "/>
</form>
<!-- END forwardLink -->

ここでのポイントは、Entry_Body の中にある forwardLink のブロック中の {forwardPage} を使って何ページ目なのかをフォームに用意するという部分かと思います。

これで、トップページからアクセスした人は、なんとなく興味のあるページの続きを読むってしてアクセスできるようになりました。これで PV 増えるかと思ったのですが、現状ではあまり効果は無いようです。

今、設定されている 2560px の 27インチディスプレイでフルスクリーンにした時まで考慮された blog2560 って名前のテーマにしようと思いますが、どうでしょうか? そもそも、どんな表示になってるか分からないかもしれませんね。(Chromeで表示の縮小ってすると雰囲気は分かるかもしれません。)


関連記事

この記事のハッシュタグ から関連する記事を表示しています。

lp@simple2016 2.7対応版を用意しました

ランディングページ用のテーマ lp@simple2016 を作りました

a-blog cms 2.5 で3つのテーマが新しくなりました

site2014のテーマをマルチブログ化する際に大事なのはテーマの継承とモジュールIDのグローバル化

WQHD対応のブログテーマ vgrid@blog2014

blog2014 を2560px対応してみました