これはあくまでもサンプルソースなので、メンテナンスなどはしていませんが、ちょっと触る機会が何度かあったのでアップグレードしてきました(昨年開催した勉強会とか勉強会とか重ねるうちに)。あくまでも勉強会参加者に先行して公開していて、一般には公開していませんでした。
過去の記事を参考にしていただいて、熱心な方からコメントも戴いているうちに、載せる義務も無いのですが、出し渋りする理由も無いので、一旦この場で 公開とさせていただきたいと思います。
ダウンロードはこちら:複数ECサイト横断検索 light Ver.1.0
横断検索テスト – [Mu]ムジログより引用:
こちらを試させて頂きましたが、検索結果表示も早く、理想のものに近いです。
5月にお書きになっている分を現在使用させていただいておりますが、自分で試してみたところ、表示が遅かったり、回避されてしまいます。
今回の「お茶」の分は、前回より手が加わっているのでしょうか?
よろしければ、違いを勉強したいと思っておりますので変わっているようでしたら、ダウンロードかメールで添付していただくことは可能でしょうか。是非お願いいたします。
見た目はあまり変わらないと思いますが、中身は大幅に変わっています。
一番大きな違いはAPIへの直列通信から並列通信に変えた部分です。
従来であれば、楽天、ヤフー、アマゾン・・・と順番にAPIにリクエストしていきましたが、これだとそれぞれの時間がかかってしまいます。それぞれ0.1秒かかるとして7種リクエストしたら0.7秒という単純計算です。
これを並列通信(同時にAPIにアクセス)にすると、それぞれ0.1秒かかるとして全部処理しても0.1秒で済むわけです。
さらに「5秒」というタイムアウト制限を付けているので、異常に重いAPIについては処理がキャンセルされます。5秒でも長いと思うのですが、実際に表示されるまで13秒とかは待ちたくないでしょう。そういう意味でも表示速度を優先させました。
さらにキャッシュの部分にも手を加えました。
以前だと各APIごとに取得したXMLキャッシュを保存していました。
今回は表示した画面ごとキャッシュするようにしました。
これによって最終的に表示される内容に特に変わりはありません。
そうすることによって、キャッシュファイルの数が激減し、そして、XMLからHTMLへ書き出すPHPプログラムの負荷がなくなります。アクセスが大きいサイトだとこれ効いてくると思います。
というわけで、大幅に手を加えて、高速化処理をしているのです。
ご参考になれば、幸いです。
ちなみに一部参考にしたのはこの本です。