• ベストアンサー

AjaxとDOMの違いを理解できません。

prototypeやDojoやJQUERY等のライブラリーを使わず、 もちろん自分でXMLHttpRequest等もコーディングせずに 以下のような事をしているのは、AJAXと呼べないのでしょうか? 1.YahooやGoogleのAPIサービスやガジェットを使って、自分のサイトに  他サイトの情報を動的に表示している。 2. 'href="http://....'でブロック要素のTAGに外部ファイルを取り込  み、DOM技法で加工し、表示している。 3.-<script src=""http://....">で、他のサイトのJSONデータを取り込み  加工して表示している。

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

  • ベストアンサー
回答No.2

> prototypeやDojoやJQUERY等のライブラリーを使わず、 他人が作ったライブラリを使うことがAjaxではありません。 http://www.atmarkit.co.jp/fwcr/special/ajax01/01.html こことかが詳しいと思います。 >1 自作のJavaScriptファイルをダウンロードしてもらって、利用者のサーバーにアップロードし、 <script src=""></script>という外部ファイルにするのと同じです。 ダウンロードと利用者のサーバーにアップロードする手間を省けるようにしています。 直リンクと呼ばれる方法なので、画像素材の場合は公開者が禁止していることが多いですが、 ガジェットやブログパーツの場合は逆に、自サーバーへアップロードしての利用を禁止することが多いと思います。 (禁止していないかも知れませんが、手間を考えると直リンクの方が簡単です) >2 DOMによるドキュメント操作です。 おそらくiframe要素を作成して、src属性をしているだけでしょう。 > 3 おそらくJSONPという方法です。 (1でも、「他サイトのJSONデータを取り込み加工して表示」という意味では同じだと思います。)

yyr446
質問者

お礼

ご提示のサイトがとても参考になりました。 すっきりしました。ありがとうございました。

その他の回答 (1)

  • zxcv0000
  • ベストアンサー率56% (111/196)
回答No.1

「Ajax と DOM は比較すべきものではなく協調させるべきもの」という話題は先日もでていましたね。 世間で「Ajaxライブラリ」と呼ばれるものには内部で Ajax と DOM の両方を使っているものが多いのが、誤解される原因でしょうか。 Ajax の本質は、JavaScript からサーバーに HTTP アクセスする事だと思います。 サーバーからレスポンスが返った時にそれをまたJavaScriptで受けて必要があれば DOM を使って画面を書き換える訳です。 Ajax以前の技術でも JavaScript は submit の発行等で サーバーにアクセス要求を発行できますが、サーバーからのレスポンスはブラウザが受けて画面書き換えをするだけです。 レスポンスをブラウザでなくJavaScriptで受けるのが Ajax の特徴です。 で、その特徴を備えたものが全て Ajax かというと、そうとは限らないでしょう。 Ajax で定義されたクラス(オブジェクト)を使用して HTTPアクセスを実現しているものだけが Ajax (を使ったJavaScript/ライブラリ)と言えるでしょう。 1 YahooやGoogleのAPIサービスやガジェット すみません。 私はその中身を知らないので、Ajaxに分類すべきかどうかわからないです。 2 2. 'href="​http://....'​でブロック要素のTAGに外部ファイルを取り込 み... リクエストの発行にAjaxクラスを使用してないんですよね? 「レスポンスを受けてDOMを書き換える」という作業はブラウザがやってるんですよね? だったら、Ajax とは呼べません。 3 取り込んだ内容によると思いますが。

yyr446
質問者

お礼

感謝

yyr446
質問者

補足

なるほど、外部サーバーにアクセスして、動的に内容を書き換えるもの全て をAJAXとはいえないのですね。 確かに、サーバーサイトで、ページを書換えて返すPHPやJAVAサーブレット はAJAXが流行りだす前からありました。