5. Ajaxの始まり
Ajax(Asynchronous JavaScript + XML)=A New Approach to Web Applications
2005年2月18日 adaptive pathの Jesse James Garrett のエッセイに初登場
http://www.adaptivepath.com/publications/essays/archives/000385.php
5
6. Ajax命名者のJesse James Garrettによる
Ajaxの定義
1.XHTMLとCSSを利用したWeb標準での画面構成にする。
standards-based presentation using XHTML and CSS;
2.DOMを使用してイベントでの相互作用と動的な画面表示を行う。
dynamic display and interaction using the Document Object Model;
3.XMLとXSLTを使用したデータ交換と操作を行う。
data interchange and manipulation using XML and XSLT;
4.XMLHttpRequestを使用し非同期でサーバとのメッセージ交換を行う。
asynchronous data retrieval using XMLHttpRequest;
5.JavaScriptによって総ての機能を統合する。
and JavaScript binding everything together.
By:Jesse James Garrett
Adaptive path 6
7. Ajaxモデルでの処理の流れ
DOM
① イベント処理
CONTROLLER
Web GET/POST
GUI
MODEL サーバ
VIEW ・テキストデータ
② サーバ通信
・XMLデータ
XHTML+CSS ③ UI表示
・XHTML 画面構成
・CSS 表示制御
④ 表示制御 ⑤ 演算処理
JavaScript
(Ajaxエンジン)
7
8. AjaxモデルでのWebシステム
(SPI=Single Page Interface)
Webブラウザ
データアクセス
プレゼンテーション DB
GET/POST
Web
XHR
UI テキスト
ビジネスロジック XML
Ajaxエンジン
XML
データストア
Webクライアント CGI系プログラム
ユーザPC サーバサイド
8
9. 従来モデルでのWebシステム
(MPI=Multi Page Interface)
Web GET/POST
UI-1 データアクセス
DB
ビジネスロジック
プレゼンテーション
Web HTML画面
UI-2
ユーザPC サーバサイド
9
106. (1) DOM(Document Object Model)
定義:Webページの内容(文章、画像、音声など)およびそれらの配置、
スタイルをツリー構造のオブジェクトとして扱い、プログラム言語から
動的にアクセスしたり更新することを可能にするAPI。
データ構造のセットではなく、インターフェイスを規定するオブジェクトモデル。
仕様策定] W3C
※DOMに従ってWebページを記述するための言語がDynamic HTMLになる。
※Dynamic HTMLはNetscape Navigator 4.xとInternet Explorer 4.x/5.xに
搭載されており、DOMの直近の祖先になるが、両者のDOMは部分的に
仕様が異なるため、現在W3Cによって標準化が進められている。
DOM Level1 :Core, HTML
DOM Level2 :Core, Views, Style, CSS, Events, Traversal, Range, HTML
DOM Level3 :Core, View and Formatting, Abstract Schemas,
Load and Save,Events, XPath
106
107. XHTMLとDOM
XML
XML文書 パーサ DOMツリー DOM API
XHTML文書 DOMツリー DOM API
<html> html DOMツリー内での
<head> イベント検知
<title>XMLガイド</title>
</head>
<body> head body
<ol> サーバとの
<li>項目1</li>
title ol 非同期通信
<li>項目2</li>
<li>項目3</li>
</ol>
</body> li li li
</html> DOMツリー内での
項目1 項目2 項目3
文書操作(動的表示)
ノード
107
108. document
DOMイベントモデル
html
body ・ターゲット イベント発生
・オブザーバ イベントキャッチ
・バブリングフェーズ
キャプチャフェーズ table イベントの上位伝播
・キャプチャフェーズ
イベントの下位伝播
tbody
オブザーバ
バブリングフェース
イベントキャッチ
tr
td ターゲット
イベント発生
参考] W3C Document Object Model Events 108