APIを呼び出して、JSONなりXMLの形式でデータが取れるのであれば、以下の方法が考えられました。
1)htmlベースの仕組みにして、データのやり取り、表示にはAjax(XMLhttpRequest)を使う
2)PHPベースの仕組みにして、PHPでデータを受け取り、HTMLとしてデータを表示する。
1)は、
・呼び出し元のサーバの負荷が小さい。
・呼び出し元のサーバの仕様の影響が小さい
2)は、
・SEO的につよい?
・PV換算ができる?
・出力時にデータの変換などが柔軟にできる
・携帯サイトに対応できる
くらいしか思いつきません。
他にどんなメリット、デメリットや違いがありますか?
また、1,2以外の方法がありましたら、それも教えてください。
XMLhttpRequestを使わないと実現できないなら別ですが、
特にそうでない限り(2)を私は採用すると思います。
APIを提供するサーバA
PHPを実行するサーバーB
クライアントC
(1)のパターンはA->Cだと思います。
もしA->B->Cだとするなら(2)とほとんど
変わりません。
A->Cを想定されていますか?
A->Cなら仕様の影響大きいと思います。
(2)のパターンはA->B->Cだと思われます。
あとA=Bの場合の考察もしてみると、(1)のメリットで
あまり感じられないのですが・・・。
---------------------------------------------------
>・呼び出し元のサーバの負荷が小さい。
>・呼び出し元のサーバの仕様の影響が小さい
本当にそうかな?と素直に思いました。
1)
クライアント(一般的にはブラウザ)に左右されるので、ブラウザのバグ・仕様などに悩まされる場合があります。
JavaScript(と仮定すると)はPHPなどと比べると機能的に貧弱な部分があり、複雑な処理を行うのが難しいかも知れません。
また、デバッグがしにくいという点もあると思います。
2)
HTML以外の出力方法もできるので、データの有効活用ができるかも知れません。
ドメイン外のデータを扱うので、セキュリティに慎重にすべきかと思います。
外部からのデータをキャッシュすればある程度負荷は下げられると思います。同時にトラフィックの事を考える必要があります。
複雑な事をするのであれば、サーバで一度データを取得し、結果をキャッシュさせるなどが良いかと思います。単純な処理であれば、JavaScriptでやらせても良いと思います。
キャッシュさせることを考えることを忘れていました。ありがとうございます。
(1)A->C、(2)A->B->Cとかんがえています。
>・呼び出し元のサーバの負荷が小さい。
これは、htmlを置くサーバの負荷という意味です。クライアントが直接Aを呼びに行くため、htmlのあるサーバの負荷は、htmlを呼ぶだけしか負荷がかからないからと考えました。
仕様の影響も同様です。
呼び出し元というのがわかりにくかったですね。Aではなく、htmlを置くサーバのことです。