<< xajaxで簡単AJAX | main | Yahoo!ニュース > トピックスAPI >>

2007.07.31 Tuesday

xajax:ちょっとだけtips

AJAX版アーティストリンク
が、ある程度形になってきたので、
成果物としていくつかのtipsをメモ。
不定期更新なので、あしからず。

--

■リンククリックでAjaxに割り当てたパーツを更新 通常のリンクは、 <a href="link">リンク名</a> となるわけですが、これだと、ページ全体が更新されてしまうので、せっかくAjaxにしたのに、台無しです。 そこで、リンクをクリックすると、Ajaxに割り当てたパーツを更新する方法が必要になります。 やり方は、
<script>
function clickLink($arg)
{
	scroll(0,0);
	xajax_funcname($arg);
}
</script>
というJavascript関数を作っておきます。 ここで、xajax_funcnameは、Ajaxに割り当てたPHP関数funcname scroll(0,0)は、ページ先頭に移動 そして、以下のようなリンクを貼ります。 <a href="javascript:void(0)" onClick="clickLink('arg')">ここをクリックすると、対象部分のみを更新します</a> argの部分が動的に変化する場合は、PHPで、 print '<a href="javascript:void(0)" onClick="clickLink(\'' . $arg . '\')">' . 'ここをクリックすると、対象部分のみを更新します' . '</a>'; といった感じで出力すれば動的なリンクも生成できます。 PHPはサーバーサードな言語、Javascriptはクライアントサイドな言語ですので、一見混在不可だと思われがちですが、こういうことをすることで、実現できます。 ひとつのtipsに複数のtipsが混じってしまった・・・ 相変わらず、まとまりがないな。

■Amazonの商品プレビューが動作せず
AJAX化した弊害の一つとして、Amazonの商品プレビューが動作しなくなったこと。
ま、ソースを見てみれば分かるのですが、Javascript関数の塊なので、仕方ないのかな・・・
ちなみに、サイドバーに表示しているアイテムの商品プレビューは動作します。

■Adsenseで儲けたい人には不向き
Adsenseはページの内容を解析してそのページにあった広告を表示してくれるので、クリック率が高く魅力的なのですが、AJAXなページの解析能力はあまり高くないようです。
ちなみに、「google」にマッチするWebAPIでも表示される
AdSense API
というAPIがあるのですが、このAPIはAdsenseのアカウント管理しか出来ないので、これでどうこうすることもできませんね。

■「戻る」が使えない
AJAXアプリの特徴として、「戻る」ボタンが機能しないというのがあります。
これは、Webブラウザというのは、ページ単位で管理しているのに対して、AJAXで作成されたページはページ遷移が発生しないので、ページの変わった状況を判定できないためです。
ただ、これだと、使い勝手がよくないので、何らかの手法を考えないといけません。
AJAX版アーティストリンクでは、サイドバー右上に、最近検索されたアーティスト名を20名文表記するようにして、ここをクリックすることで、直前の状況にすぐに復帰できるようにしています。
ブラウザの画像キャッシュ&Cache_Liteによるサーバーでのデータキャッシュの効果で、ほとんど待ち時間なしで表示されるので、使い勝手は悪くないかな、という印象です。
このあたりも考えながら、ページ設計が必要になります。

■ページのURLを明記する
AJAXの最大の特徴は、ページ遷移が無いこと。
つまり、ブラウザから見えるURLは最初に開いたページのままです。
このため、ユーザーのストレスを軽減できるわけですが、一つ問題が。
そう、検索した後のページにリンクしたい場合、そのページのURLを取得したつもりが実はそうでなく、検索前のページだった、ということが多々あります。
AJAXでページを作成する場合は、ページ表示後のURLをページの一番上か一番下に明記しておくことで、リンクしてもらえる可能性も高くなる、というSEO効果?も期待できます。


--

テクノラティお気に入りに追加する

Comments

コメント入力は停止しています

海外からと思われるコメントスパムが横行しているため、全記事のコメント入力を停止しています。メッセージのある方は、ホームページの一番下に連絡欄がありますので、そちらからお願いします。

Trackback URL

トラックバックする場合は、
トラックバック元の記事にこのエントリへのリンクを記載してください
このエントリのタイトル「xajax:ちょっとだけtips」
このエントリのリンク「http://kommy.s254.xrea.com/blog/log/eid46.html」