• ベストアンサー

phpとajaxの比較

webアプリケーションを作成する場合 phpとajaxのどちらが良いでしょうか? また、メリット、デメリットなどあるでしょうか? (ajaxはjsとxmlを使った非同期通信ということは認知しています) webに関して色々と勉強しているのですが 上記のような疑問を感じで質問させていただきました。 どうかご教授願いたいと思っています。 よろしくお願いします。 そもそもこのような疑問自体が間違っていたら申し訳ございません。 (私はphp初心者です)

  • AJAX
  • 回答数3
  • ありがとう数10

質問者が選んだベストアンサー

  • ベストアンサー
  • neko-ten
  • ベストアンサー率55% (1287/2335)
回答No.3

競合するべき技術ではないですね。 私自身はAjaxでサーバサイドをPHPで組んでいます。 Ajaxはなにも生XMLに限定してhttpアクセスするわけではありません。 ブラウザがバックグラウンドでhttpアクセスを行うので、その対象をPHPにすればよいわけです。 POSTもGETもできるので、サーバサイドでもスクリプト動作させることにより、クライアントサイドオンリーよりもさらにインタラクティブになります。 また、クライアント負荷の軽減にも。 ちなみに、応答もXMLではなくjasonを使ったりする場合もあります。 極論、生HTMLを返してそれを直接DOMに反映させてしまってもいいわけです。

kochkoch
質問者

お礼

詳しく説明していただきありがとうございます。 なんとなくイメージすることができました。 今回をきっかけにAjaxについて勉強を深めていこうと思います。 ありがとうございました。

その他の回答 (2)

  • OKbokuzyo
  • ベストアンサー率43% (130/296)
回答No.2

phpはサーバサイドアプリケーションです。 AjaxはJavascriptを使用しますがこれはクライアントサイドです。 簡単に言いますと Javascriptからサーバサイドへphpなどをリクエストすることができます。 これがAjaxです。

kochkoch
質問者

お礼

Ajaxの奥の深さを知ることができました。 いずれはもっと勉強したいと思います。 ありがとうございました。

回答No.1

PHPのみ、JavaScriptのみという場合ならともかく、 Ajaxにするなら通常は両方使います。 PHPの代わりにPerlやRuby、Java(JavaScriptではなくJavaです)を使うことも多いです。

kochkoch
質問者

お礼

てっきりxmlだけかと思っていました。 ありがとうございました。

関連するQ&A

  • AJAXとSEO。同期通信とPHP送信の違い

    「AJAX」「SEO」「同期通信」「PHPでPOST送信」について、幾つか分からないことがあるので教えてください ■質問1 ・AJAX通信すると、SEO的に不利なのでしょうか? 例えば、AJAXでCSVファイルを読み込む場合はどうなるでしょうか? もしかして、実装方法による? 下記例で、何か違いはあるでしょうか? ・例1 … 非同期。ページ読込後にCSV読込(そもそもこの実装は可能?) ・例2 … 非同期。ページ読込前にCSV読込 ・例3 … 同期。ページ読込後にCSV読込 ・例4 … 同期。ページ読込前にCSV読込 ■質問2 ・AJAX通信で検索ボタンを押したページ結果は、クローラーされることはあるのでしょうか? サーバからデータを取得しているから反映される? 非同期だったら、反映されない? 同期だったらされる? ■質問3 ・AJAX通信の同期処理の意味が分かりません(jQueryのasyncをfalseなど)。非同期通信がAJAXだと思うのですが、AJAX通信の同期処理というのは、何なのでしょうか? 例えば、「PHPでPOST送信」するのと、原理的には全く同じということになるのでしょうか?(PHPで実装するか、js実装するかの違いだけ?) 最終的に、SEOを重視する場合は(非同期の操作性を捨て)同期処理で実装した方が良い、ということになるのでしょうか?

    • ベストアンサー
    • AJAX
  • Ajaxの動き

    googleと本で調べたのですが、今いちわからないため質問させてください。 (1)教科書から、Ajaxは、XMLをJavascriptでやり取りしている非同期通信という定義なのはわかりましたが、結局、AJAXを使うということは、HTMLに、<Script>のタグで、JQueryなどのパスを書くということなのでしょうか? AJAXは概念的なものであって、プログラムやモジュールそのものではないと捉えています。 (2)Ajaxによる非同期通信は、何をきっかけとして通信が始まるのでしょうか? 通常は、FORMがSUBMITされたときに、サーバにリクエストがいくという認識ですが そもそも、Ajaxは、何をイベントとしてハンドルしているのでしょうか?(何をきっかけに処理が始まっているのでしょうか?) HTMLに、<Script>のタグで、JQueryのパスを書くと、ハンドルする機能が使用されるのでしょうか? Ajaxでも「リクエスト」は行われているけれども、処理結果として戻されるものがXML形式であるだけだという理解で良いのでしょうか?

    • ベストアンサー
    • AJAX
  • AjaxのOnFailureについて

    Ajax(prototype.js)を使用しているのですが、OnFailureが呼び出されてしまいます。 プログラムの流れです。 ボタン押下(html) ↓ 前処理(js) ↓ サーバのファイル情報取得(ajax非同期通信→php→戻ってきて情報取得) ↓ 取得したファイル数ループ(js) ↓ ↑ 別のサーバにコピー(ajax非同期通信→php→戻り値判定) ↓ ループ抜けたら終了処理 大量のファイルを処理した場合、4~5経過したあたりで 「別のサーバにコピー(ajax非同期通信→php→戻り値判定)」 が正常に行われず、後処理として記述してあるOnFailureを呼び出してしまいます。 OnFailureについて調べてみたのですが、MSDNのAjaxOptions クラスに 「ページの更新が失敗した場合に呼び出される JavaScript 関数。 この関数は、応答ステータス 200 の範囲内にない場合に呼び出されます。」 と記述されていました。 応答ステータスとは何を指しているのでしょうか。 回避方法があれば教えてください。 よろしくお願い致します。

  • Ajax以外で、JavaScriptからPHPへ渡

    Ajax通信以外で、JavaScriptからPHPへ変数(配列)を渡したいのですが、 可能でしょうか? 下記のような状態の時、js変数dataを、Ajax通信を利用せずにPHP変数として取得したいのですが、どうすればよいでしょうか? JavaScript関数の中で、PHPフォームの送信ボタンをクリックさせる(ような)ことは出来ないのでしょうか? <button type="button" onclick="testsubmit();">送信</button> <script> function testsubmit(){  js処理;  var data = ★★; } </script> ■最終的にやりたいこと ・ボタンをクリックしたら、js処理で取得したjs変数(配列)を、Ajax通信を利用せずに、PHP変数として受け取りたい ・それを出来れば1クリックで処理したい

  • AjaxとJava

    私はAjaxの勉強をしようと思っています。 そのため、簡単なサーバ側はJavaのアプリケーションを作って学ぼうと思ったのですが、どうやって通信すればよいかよくわかりません。 一応わからないなりにいろいろ方法を考えてみたのですが、どれも疑問点があります。 (1)、サーバをJavaで作成して、Ajaxと通信する方法 (2)、JSPを使って、Ajaxと通信する方法 どちらの方法も、 (1)どうやってAjaxからの(正確にはJavaScriptからの)リクエストを受け取って、値を取り出したらいいか (2)どうやってサーバからJavaScriptにデータを送るのか がわかりません(送るパケットは極めてシンプルなもの、たとえば数字とか文字列がいいです)。 入門サイトはほとんどのサーバ側はPHPで作っているので、あまり参考にならないと考えています。 なにか参考になるようなサイトなどはないでしょうか? お返事お待ちしております。

  • Ajaxについて教えてください。(定義と実装方法について)

    Ajaxについて教えてください。 (定義について) http://www.atmarkit.co.jp/fwcr/rensai/imasara03/imasara03_1.html (サンプル集) http://jsajax.com/default.aspx 【定義について】 >>Ajaxは略語で、正式名称は「Asynchronous JavaScript + XML」となります。Asynchronousは「非同期」という意味 とされいるようなのです。他にも調べてみると、 「Javascriptを使い,Webページとは非同期(Asynchronous)にXML形式(もしくはテキスト形式)のデータ通信を行う手法」といった風にかかれています。 この「Webページとは非同期」という部分がわからないのですが、どういったものを指しているのでしょうか? 【実践方法について】  Ajaxの実装はどういった手順で行うものなのでしょうか?  参考でみたホームページで、ライトボックスをみて感動したので、早速使ってみたいと思いました。いざAjaxサンプルページに載っている、ライトボックスのコードをコピー&ペーストで、自分のPC上で試してみたのですが、動かず悩んでいます。(汗)  調べていくうちに、ライブラリが必要なようなのですが、どのように実装することで、ライトボックスは使用できるようになるのでしょうか?    AjaxサンプルのURLにjQueryを使い倒せ!ということから、jQueryという、Ajax用のライブラリがあるのでしょうか?

    • ベストアンサー
    • AJAX
  • Node.jsでajaxがうまくいかない

    nodejs初心者なのでよくわからずやっていて恐縮ですが、うまくいきません。 https://phpotameshi-hoto345.c9users.io/node-ajax/hello_ajax.html なのですがもともとはphpで送信ボタンを押したときにphpが実行されるものでしたが、これを少し改良してNode.jsでやってみようと思ったのですが、phpと違って <script src="scripts/hello.js"></script> のようにnodejsを読み込んでやれば同じ結果になると思ったのですがうまくいきません。 その前にローカルでもNode.jsは使えるようなので >node test.js Server running at http://localhost:8124/ のようにしてローカルでやってもhttp://localhost:8124/自体は問題なく立ち上がりtest.jsの中身は実行されたのですが、ajaxの方がうまくいきません。 ローカルでのNode.jsもServer running at http://localhost:8124/ となっていればNode.jsのサーバは起動しているので、 ローカルでhello_ajax.htmlを起動して、buttonを押せばajaxもnodejsも実行されるのではないでしょうか?

  • PHP4でのAjax データ出力形式について

    こんにちは PHP4.4.9でAjax通信時のデータ出力形式をどうしようか悩んでいます。 やりたい事は、HTMLのSELECTタグの中身を入れ替える事です。 普段は主にjsonでデータのやり取りをしていますが、PHP5.2以降という事でXMLにしようとしたのですが、今時じゃないのかなかなかサンプルが見つからず・・・ PEARやPECLでのライブラリ等の追加は都合上、行えません。 自前でXMLやJsonを作る事はしたくないので、よいサンプル等あればご教示ください。

    • ベストアンサー
    • PHP
  • Ajax.Requestについて

    いつもお世話になっております。 今回はAJAXについてお聞きしたいです。 現在prototype.jsを使って同期通信をしようとしています。 リクエスト部分のソースは以下のようです。 function AjaxLoad() { new Ajax.Request('abc.cgi',         {         method : 'post',         asynchronous : false,          }         ) response = transport.responseText; hyouzi(response); } abc.cgiというものは処理をして値を返すcgiです。 同期通信したのちにその返された値をhyouzi();で使いたいです。 ここでこのAjaxLoad()を呼び出すとtransportはありませんというようなerrorが出ます。 それ以前にabc.cgiを呼んでいるような感じがしません。 上記のような処理をしたい場合はどのように記述すればよいのでしょうか? ご教授願います。

  • ajaxからのPHP呼び出し時にエラー画面に遷移させたい

    お世話になります。 ただいまajax+PHPで開発しております。 で、今困っているのがajaxからPHPを呼び出し エラーが起きたい際にエラー画面に遷移させたいと 考えているのですが、ajaxのAjax.Updaterのsuccess時の id指定の箇所にしか表示されません。 そもそもajaxから呼び出した際は、エラー画面には遷移できないもの なのでしょうか? 申し訳ありませんが、ご教授願えないでしょうか? よろしくお願いいたします。

    • ベストアンサー
    • PHP

専門家に質問してみよう