AJAX

はじめに
AJAX の入門的チュートリアル

Asynchronous JavaScript + XML (AJAX) はそれ自体がある種の技術というわけではありませんが、 Jesse James Garrett によって 2005 年に作られた言葉で、既存の技術同士を組み合わせた新しいアプローチを意味します。組み合わされる技術は、HTMLXHTMLCascading Style SheetsJavaScriptDocument Object ModelXMLXSLT、そして、XMLHttpRequest object です。
これらの技術が AJAX のモデルで組み合わされると、ウェブアプリケーションはより早く、表示されているページ全てを再読み込みすることなく、ユーザーインターフェイスを逐次更新できるようになります。そして、アプリケーションにより早い表示、より良い応答性をもたらします。

Ajax の X は XML を表していますが、 JSON の方がより軽く JavaScript の一部であることなど数多くの利点があるため、今日では XML よりもよく使われています。 JSON と XML はどちらも Ajax モデルの情報をパッケージ化するために使用されます。

ドキュメント

はじめに
この記事では AJAX の基本について説明し、始めるために2つの簡単な実例を紹介します。
XMLHttpRequest API の使用
XMLHttpRequest API は、Ajax のコアです。この記事では、次のような Ajax 技術の使用方法について説明します。
Fetch API
Fetch API はリソースをフェッチするためのインターフェイスを提供します。 XMLHTTPRequest を使用した人なら誰にでも馴染みのあるように見えますが、この API はより強力で柔軟な機能セットを提供します。
Server-sent イベント
伝統的に、ウェブページは新しいデータを受信するためにサーバにリクエストを送信しなければなりません。つまり、ページはサーバにデータを要求します。サーバが送信したイベントでは、サーバがメッセージをウェブページにプッシュすることで、いつでもウェブページに新しいデータを送信することができます。これらの着信メッセージは、ウェブページ内のイベント+データとして扱うことができます。サーバー送信イベントの使用を参照してください。
純粋な Ajax ナビゲーションサンプル
この記事では、純粋な Ajax ウェブサイトの3つのページから構成された実用的な (最小限の) 例を提供します。
バイナリデータの送信と受信
XMLHttpRequest オブジェクトの responseType プロパティを設定して、予想されるレスポンスタイプをサーバから変更することができます。可能な値は空文字列 (デフォルト), arraybuffer, blob, document, json, text です。response のプロパティには、 responseType に従って ArrayBuffer, Blob, Document, JSON、または string のようなエンティティ本文が含まれます。この記事では、Ajax の I/O 技術をいくつか紹介します。
XML
Extensible Markup Language (XML) は、特定の目的のマークアップ言語を作成する W3C 推奨の汎用マークアップ言語です。これは SGML の単純化されたサブセットであり、多くの異なる種類のデータを記述することができます。その主な目的は、異なるシステム、特にインターネットを介して接続されたシステム間でのデータの共有を容易にすることです。
JXON
JXON はロスのない Javascript XML Object Notation の略で、 XML を使用して Javascript オブジェクトツリー (JSON) の表現を定義する総称です。
Parsing and serializing XML
文字列、ファイル、または JavaScript を使用して XML 文書を解析する方法、XML 文書を文字列、Javascript Object Tree (JXON) またはファイルにシリアル化する方法
XPath
XPath は XML Path Language (XML パス言語) の略で、XML 文書のさまざまな部分をアドレス指定する (指す) 柔軟な方法を提供する非 XML 構文を使用します。これと同様に、ドキュメント内のアドレス指定されたノードをテストしてパターンに一致するかどうかを判断することもできます。
FileReader API
FileReader API を使用すると、ウェブアプリケーションがユーザーのコンピューターに格納されているファイル (または生データバッファ) の内容を非同期に読み取ることができ、読み取るファイルまたはデータを File または Blob オブジェクトで特定します。 File オブジェクトはユーザーが <input> 要素を使用して選択した結果として返される FileList オブジェクト、ドラッグ&ドロップ操作の DataTransfer オブジェクト、 HTMLCanvasElementmozGetAsFile() API から取得することができます。
XMLHttpRequest における HTML
W3C の XMLHttpRequest 仕様書では、もともと XML の解析のみに対応していた XMLHttpRequest に HTML 解析の対応が追加されています。この機能を使用すると、ウェブアプリケーションは XMLHttpRequest を使用して解析された DOM として HTML リソースを取得できます。
その他の資料
その他の参考になる Ajax リソースです。

すべてを見る...

関連情報

Ajax の代替技術
Ajax のほとんどの記事は、 XMLHttp をそのような通信を実現する手段として使用することに重点を置いていますが、 Ajax のテクニックは XMLHttp に限定されていません。他にもいくつかの方法があります。
Ajax: ウェブアプリケーションへの新しいアプローチ
adaptive path の Jesse James Garrett は 2005年 2月にこの記事を書いて、 Ajax とその関連概念を紹介しました。
A Simpler Ajax Path
「XMLHttpRequest オブジェクトを利用して、ウェブアプリケーションをデスクトップアプリケーションのように動作させ、ユーザー入力を収集するためのウェブフォームなどの従来のツールを使用するのは非常に簡単です」
Ajax についての間違い
Alex Bosworth はこの記事を書いて、Ajax アプリケーション開発者の間違いのいくつかを概説しています。
チュートリアル
XMLHttpRequest の仕様
W3C ワーキングドラフト