Ajax

出典しゅってん: フリー百科ひゃっか事典じてん『ウィキペディア(Wikipedia)』
一般いっぱんてきなWebアプリケーション(ひだり)とAJAX(みぎ)の動作どうさちが

Ajax(エイジャックス[1][2]、アジャックス[3])は、ウェブブラウザない非同期ひどうき通信つうしんおこないながらインターフェイスの構築こうちくおこなうプログラミング手法しゅほうである[4]XMLHttpRequestHTTP通信つうしんおこなうためのJavaScriptクラス)による非同期ひどうき通信つうしん利用りようし、通信つうしん結果けっかおうじてダイナミックHTML (DHTML) で動的どうてきにページの一部いちぶえるというアプローチを[5]

Ajax は『Asynchronous JavaScript And XML』のりゃくで、2005ねん2がつ18にち米国べいこくのインフォメーションアーキテクトであるジェシー・ギャレット[注釈ちゅうしゃく 1]により名付なづけられた[5][6][7]

概要がいよう[編集へんしゅう]

1997ねんごろだい1ブラウザ戦争せんそう勃発ぼっぱつし、そのなか動的どうてきにWebページをえるDHTMLという概念がいねん登場とうじょうした。登場とうじょうしたばかりのころは、クライアントサイドでページをえる必要ひつようせいうすいとされ、ページの動的どうてき装飾そうしょくのみに有用ゆうようであるとかんがえられていた。しかし、Web技術ぎじゅつしゃ実験じっけんてきなコーディングの結果けっか、JavaScriptじょう非同期ひどうき通信つうしん記述きじゅつすることで、業務ぎょうむ実用じつようえる優秀ゆうしゅうなインターフェースをそなえたアプリケーションをHTML+CSS+JavaScript作成さくせい可能かのうであることが徐々じょじょ判明はんめいしていった[6]

従来じゅうらいWebアプリケーションでは、サーバにリクエストを送信そうしん、レスポンスをあらたにウェブページとしてることで画面がめん遷移せんい発生はっせいしていたが、Ajaxにより画面がめん遷移せんいともなわない動的どうてきなWebアプリケーションの製作せいさく実現じつげん可能かのうになる[1]たとえばWeb検索けんさく応用おうようすることで、従来じゅうらい入力にゅうりょく確定かくていっていた検索けんさくを、ユーザがキー入力にゅうりょくをするあいだにバックグラウンドでおこなうことによってリアルタイムに検索けんさく結果けっか表示ひょうじしていく(インクリメンタルサーチ)といったことが可能かのうになる。

上記じょうき機能きのうは、Webブラウザ標準ひょうじゅん搭載とうさい技術ぎじゅつのみで実現じつげんできる[4]。Ajaxという用語ようご考案こうあんされるまえから手法しゅほう自体じたい存在そんざいしており同時どうじ多発たはつてきこころみられていた。しかし、2005ねんおこなわれた、コンサルティング会社かいしゃ経営けいえいするJesse James GarrettによるAjax:A New Approach to Web Applicationsというエントリの投稿とうこうと、GoogleGoogle マップGoogle サジェストにこの手法しゅほう使用しようしたことで有名ゆうめいになり[6]、Webアプリケーションの操作そうさ感覚かんかくをネイティブアプリケーションの操作そうさ感覚かんかく近付ちかづける手法しゅほうとしてAjaxが注目ちゅうもくされはじめた。さらに、Googleでは、デスクトップアプリケーション遜色そんしょくのない電子でんしメールクライアントであるGmailGoogle Calendarでも積極せっきょくてきにAjaxを使用しようし、Ajaxの実用じつようせいがGoogleのWebアプリケーションをつうじて世界中せかいじゅうのインターネット技術ぎじゅつしゃひろ認知にんちされた。

AjaxによるWebプログラミング(Webアプリケーション製作せいさく)が注目ちゅうもくされた背景はいけいには、この従来じゅうらいのページ遷移せんいのみにたよったWebの使つか勝手がってわる[1][7]たいする不満ふまんや、XMLDOMなどのWeb関連かんれん技術ぎじゅつ標準ひょうじゅんウェブ標準ひょうじゅん)、およびたか機能きのうったWebブラウザの普及ふきゅうなどがげられる。

問題もんだいてん[編集へんしゅう]

従来じゅうらい技術ぎじゅつわせであるため、それぞれの問題もんだいをそのまま内包ないほうする。 たとえば、各種かくしゅWebブラウザあいだのDHTMLの実装じっそうちがいをコードで吸収きゅうしゅうする必要ひつようがある。

実際じっさい、Ajaxを実現じつげんする技術ぎじゅつはブラウザあいだ実装じっそうちがいがあり、基幹きかん技術ぎじゅつであるXMLHttpRequest実装じっそうもととなったInternet Explorer実装じっそう解説かいせつではXMLHttpRequestという用語ようごあたらず、ActiveXでMicrosoft XML (MSXML) 機能きのうして実行じっこうする。Internet Explorer 6では、Microsoft XML 3.0が付属ふぞくしているため[8]、ActiveXを無効むこうにしていないかぎりこの機能きのう使つかえる。Microsoft XMLの実装じっそうではバイト配列はいれつせるなど機能きのうてきちがいもある。言語げんごとしてVBScript使つかえるてんことなる。

また、Ajaxアプリケーションでは動的どうてきにページの一部いちぶえられるためデザインコード以前いぜんのように単純たんじゅん分離ぶんりできないという開発かいはつじょう問題もんだいてんがある(Model View Controller参照さんしょう)。このため、現在げんざいでは通常つうじょうのWeb開発かいはつくら開発かいはつにより時間じかんがかかるとわれている。

Ajax の必要ひつようせいさけばれるにつれこうした問題もんだい解決かいけつすべく、アプリケーションフレームワーク開発かいはつすすみ、これらを利用りようすることで、こうした問題もんだい解決かいけつしつつある。

Ajaxようアプリケーションフレームワーク[編集へんしゅう]

Ajaxフレームワークとしては以下いかのようなものがあり、それぞれについて特徴とくちょうがある。

これらを利用りようすることで、ブラウザの互換ごかんせいかんする問題もんだい解決かいけつすることが出来でき、またデザインとコードの分離ぶんりといった Web 開発かいはつ効率こうりつせいたかめる工夫くふうれることも可能かのうになるとされている。

Spry は、Adobe CS のような統合とうごう開発かいはつ環境かんきょうまれていたり、Prototype は、Ruby on Rails などの Web アプリケーションフレームワークの一部いちぶとして統合とうごうされるなど、さまざまな Web 開発かいはつソフトウェアの一部いちぶとしてうごきもひろがっている。

補足ほそく[編集へんしゅう]

非同期ひどうきメソッドはAjax独自どくじのものなのかと勘違かんちがいしやすいが、HTML DOMにはXMLHttpRequest以外いがい以下いかのような非同期ひどうきメソッドが存在そんざいする。

  • Image#src, HTMLImageElement#src
  • Window#location (HTMLIFrameElement, HTMLFrameElement)
  • HTMLScriptElement#src
  • DHTML Behavior (#default#download)

現在げんざいはAjax関連かんれん技術ぎじゅつとしてXMLHttpRequestをまった使つかわないプログラムまでがげられるようになっており、JavaScriptを効果こうかてき使用しようして動的どうてきなWebサイトをつく手法しゅほう全般ぜんぱんをAjax関連かんれんひろとらえる傾向けいこうちまた存在そんざいする。

脚注きゃくちゅう[編集へんしゅう]

注釈ちゅうしゃく[編集へんしゅう]

  1. ^ えい: Jesse James Garrett

出典しゅってん[編集へんしゅう]

関連かんれん項目こうもく[編集へんしゅう]

外部がいぶリンク[編集へんしゅう]

Toolkits[編集へんしゅう]