• ベストアンサー

どこまでがAjaxなの?

現在、Ajaxを勉強中の初心者です。 質問のタイトル通りなのですが、どこまでがAjaxなのかイマイチわかりません。 AjaxはJavaScript + XMLで非同期通信をする技術ですが 1.画像やプログラムファイルをサーバPC側に入れておいてクライアントPC側でラジオボタンの選択によって画像表示を変えるのはAjaxですか、それともただのJavaScriptですか? 2.サーバを使って以下のような入力可能文字カウンタを表示させるのはAjaxですか、それともただのJavaScriptですか? <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/> <title>文字のカウント</title> </head> <body> <form>   <textarea cols="46" rows="5" id="title1" name="title1" size="50"></textarea><br />   あと<span id="inputlength1">20</span>文字入力できます<br /> </form>   <script type="text/javascript"><!--     function lengthCounter (node, max, cut) {       max = max || Number (node.maxLength) || 20;       return function () {         var rest = max - node.value.length;           if (rest < 0) {             if (cut) {               alert ('20文字以内にしてください');               rest = max;               node.value = node.value.substring (0, max);             }           }           return rest;       };     }     function dispValue (node, cbFunc) {       return function () {         node.firstChild.nodeValue = cbFunc ();   };     }     setInterval (dispValue ( document.getElementById ('inputlength1'),     lengthCounter (document.getElementById ('title1'), 20, true)), 100);   // --></script> </body> </html> 3.「googleサジェストのインクリメンタル検索にはAjaxの技術が利用されている」←ここでのAjaxにはPHPも含まれますか? 私はPHPをAjaxの枠には入れないような気がします。正確にはPHPとAjaxでインクリメンタル検索機能がつくられていると思うのですが。 4.PHPのみでAjaxと同じ非同期通信ができればそれはAjaxと呼ぶのか? よろしくお願いします。

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

  • ベストアンサー
  • kachansa
  • ベストアンサー率44% (30/67)
回答No.1

まず、2の質問では、サーバを使ってとありますが、全くサーバを利用していません。 単に、クライアント上でJavaScriptを利用して文字数をカウントして、DOMで結果を表示しているだけです (Webサーバがなくても、とりあえずクライアントで動作させられる)。 Ajaxに対する私の理解は、 「サーバとの非同期通信により必要なデータを最小限で取得すること」 です。非同期通信によりWebブラウザでの操作が止まらず、また、HTMLレスポンスを得ずに、必要なデータのみを 取得し、Webブラウザ内で必要な箇所のみ更新するものです。 Googleのインクリメンタル検索は、ユーザの入力に対し、バックグラウンドで通信を行ってます。 で、サーバ側でリクエストに応じるために使われるプログラムは、別に何でも構いません(Webサーバで処理できる手段なら 何も問われることはありません)。 あと、PHPのみとありますが、これはクライアント側? サーバー側? まあ、PHPでクライアントソフトを作って、非同期 通信でサーバ側をPHPで処理して、必要なデータのみを得るのも、広い範囲でAjaxかもしれませんが... 普通は、 クライアント側は、JavaScriptとDOMがに対応したWebブラウザですけどね。

shorinji36
質問者

お礼

回答有難うございます。 1番目は http://www.sky.sannet.ne.jp/masapine/java_gazou.html のようなものですが これはAjaxですか?

その他の回答 (1)

  • kachansa
  • ベストアンサー率44% (30/67)
回答No.2

>1番目は http://www.sky.sannet.ne.jp/masapine/java_gazou.html のようなものですが >これはAjaxですか? Ajaxではないです

shorinji36
質問者

お礼

回答有難うございます。 >Ajaxではないです もう少し具体的に教えてもらえないですか? http://www.sky.sannet.ne.jp/masapine/java_gazou.html これは画像がWebサーバ側にあるのでは? それをページの読み込み(同期通信)なしで切り替えているのだからAjaxではないのですか?

shorinji36
質問者

補足

これがAjaxでないのならAmazonの「この商品を買った人はこんな商品も買っています」てヤツも Ajaxじゃないのでしょうか?原理は同じだと思うのですが。 ※画像を貼れなくてわかりづらいですが・・・