あまびき開発日誌 #17
あまびき開発 17 日目。
細かい変更や修正などを行った。
クレジット表示の追加
Yahoo!デベロッパーネットワークの API を利用する際にはクレジットを表示する必要があるので、フッタ部分に追加した。一定のマージンを設ける配置ルールなどがあるので注意が必要。詳しくは、Yahoo!デベロッパーネットワーク - クレジット表示を参照。
あわせて「Amazon.co.jpアソシエイト」の文言もフッタに追加。こちらも規約ではロゴかこの文言を表示する必要がある。Amazon.co.jpアソシエイト・プログラム運営規約 を参照。
IE でスクロールが重くなる現象に対応
IE で 2 回目以降の検索後にスクロールが極端に重くなることが判明。原因を探るのに時間がかかったが、結局、FadeTo 関数の乱用に問題があるらしいことが判明。Firefox では問題なかったため、気づくのが遅れた。
jQuery 開発者向けメモによれば、「表示中の要素に fadeIn() を使用したり,その逆を行うと,余計なアニメーションが実行されることがあります. これを防ぐためには,要素の指定に :hidden,:visible を利用してください.」とのこと。これと関係があるのかもしれない。
この記事は、Amazon.co.jp 商品検索サイト「あまびき」の開発中につけていたメモを、ブログ用にまとめ直したものです。
あまびき開発日誌 #16
あまびき開発 16 日目。
ツールチップの実装
Tooltip プラグインを使って、ツールチップ(マウスオーバーしたときにポップアップで出るヘルプ)を実装。操作するときにわかりにくいであろう箇所には出るようにする。
Tooltip プラグインは、ページ内に select メニューがある場合は bgiframe プラグインも必要ということなので、こちらも導入。このプラグインは、IE における select フォームの z-index に関する問題を修正するものとのこと。
ためしに bgiframe プラグインなしでやってみると、IE6 では Tooltip が select メニューに隠れてしまった。
この記事は、Amazon.co.jp 商品検索サイト「あまびき」の開発中につけていたメモを、ブログ用にまとめ直したものです。
あまびき開発日誌 #15
あまびき開発 15 日目。
JavaScript オフ時の対策
- JavaScript をオフにした状態で検索すると生の XML が表示されてしまうため、JavaScript をオンにしないと検索できないようにした。
- CGI の URL を指定するのを form タグの action 属性ではなく、jQuery Form Plugin の url オプションで指定することで実現。JavaScript をオフにした状態で検索ボタンを押しても何も起こらない。
- 追記: IE だと Enter キー入力では検索が開始されなくなってしまった。action 属性は必須なのに、これを省略していたからかも。
- 追記 2: 後日、JavaScript オフ時には、検索フォームを表示させないようにすることで対応した。本当は JavaScript オフでも検索できればいいのだろうけど。
エラーページの作成
ECS から取得した XML データに Item 要素がない場合には、エラーメッセージを表示するようにした。
ただし、Item 要素はあるが、CorrectedQuery(Amazon 側で自動的に補正されたクエリ)があればエラーメッセージと Item 要素の内容を表示(SearchIndex が Blended 以外の場合)。SearchIndex が Blended の場合にどうするかは、またあとで考える。
この記事は、Amazon.co.jp 商品検索サイト「あまびき」の開発中につけていたメモを、ブログ用にまとめ直したものです。
あまびき開発日誌 #14
あまびき開発 14 日目。
今日は少しだけ。
- 一部画像の作り直しと新たな画像の作成。
- スクリプトの微調整。
この記事は、Amazon.co.jp 商品検索サイト「あまびき」の開発中につけていたメモを、ブログ用にまとめ直したものです。
あまびき開発日誌 #13
あまびき開発 13 日目。
SearchIndex=Blended でページめくりがうまく行かなかった原因
前日のページめくりがうまく行かなかった原因がわかった。
現在のページ数と総ページ数の比較を行うときに、どちらも文字列のまま行っていたためだった。parseInt() で数値に変換してから行ったら、問題なくページ末尾でスクロールすると次のページへ移動できるようになった。
文字列を数値に変換する関数には、parseInt() のほかに eval() もあるようだけど、どちらを使えばがいいのかわからない。とりあえず parseInt() を使うことにする。
他にも文字列と数値の区別を意識せずに使っていた箇所があったのを修正した。
この記事は、Amazon.co.jp 商品検索サイト「あまびき」の開発中につけていたメモを、ブログ用にまとめ直したものです。



