日本に帰ってきました。で IEBlog を見たら、Mix08 2 日目 に書いた Scott Dickens と Jane Kim がそれぞれフォローの記事を IEBlog に書いていますね。特に図入りで説明されているので、分かりやすいと思いますので、ご参照ください。
最終日の 3 日目は、IE8 のセッションは 1 つ。
IE の Program Manager である、Marc Silbey がスピーカーを務める、「Developing Cutting Edge Web Applications with Internet Explorer 8」 です。

IEBlog の翻訳もしたいところですが、それはそれで別にして、Mix08 のレポートを書かせていただきたいと思います。記事の内容で IEBlog と異なるところがあった場合は、その都度 IE Team に確認して修正いたします。
このセッションのポイントは、次の 3 点。
- Interoperability : さまざまなブラウザと相互運用できること、Web サイト/アプリが IE8 で動作するために Special な Code 減らすことが目的。
- Dev-friendly Tools : 便利で使い勝手の良い Built-in Debug Tool
- New scenarios : Ajax を使ったページのナビゲーションなど
Balancing Interoperability and Compatibility
前のセッションで Scott も言っていたように、(Microsoft は) Interoperability をコミットする。
-> IE8 がデフォルトで最も Web 標準に準拠したモードで動作することは、Web の相互運用性を進めることになり、(レンダリングエンジンの) シンプルなスイッチ切り替え機能は、既存の Web Site の互換性を保つ。
Test in IE8 Standard Mode
いろんなセッションで、IE8 Standard モードは、Web App/Site の Cutting edge を生成できるが、それを使いたくない場合などはこの
? タグを使うことで IE7 モードへスイッチさせることができます。
More HTML Standards Compliant
日本で実施した Web 標準フィードバックフォーラム For IE からフィードバックが挙がっていたものを含めて、いくつか IE8 Standard モードで確認できる HTML における準拠した点が羅列されています。それに加えて 199 もの修正が Beta1 に入っています。(その修正リストが欲しいと、Marc に確認中。)
DEMO をいくつか。

Cross Browser DOM Compliance
ここでもまた、DOM に対して、IE8 Standard モードで修正されていることを紹介。
これもまた、一覧がないのか、確認中です。
- Fix DOM L1 Attribute シナリオ
- 他の?DOM compliance 対応
- Operation Aborted parsing error mitigated
Optimized for Performance
以下のパフォーマンスへの対応はすべてのモードに対して有効です。
(これらのパフォーマンスの向上は Web Site/Apps に対する互換性という意味では、大きな問題にならないと判断したからです。)
- 6 コネクションでの並列ダウンロード
- 今までは 2 コネクションしかなくて、JScript のダウンロード時に何らかの問題があった場合、リソースファイルは落とせても、スクリプトの実行はまたエンジンがリブートした後に実行されていたが、IE8 からはそれがカバーできる。
- JScript エンジンと JScript エンジンと OM との間のパイプラインの変更
- 今日のダイナミックなページのために、ネイティブ JScript?の Array/String Operation をより高速化
- OM の改良 : Corrections の作成の高速化 (具体的に何を指しているのか、調べます。)
Circular Memory Leak Mitigation
これも、理解が面倒だったのですが、詳細はベータセミナーなどで取り上げるとして、簡単に言うと、以前の IE? では Jscript のメモリ管理システム (JScript garbage collector ?) は、JScript で生成したオブジェクトの Lifetime は管理していたけど、DOM Object のは管理していなかった。その結果、Jscript メモリ管理システムは、DOM Object と JScript Object との間で参照していたリファレンスの参照を Break することができなくて、メモリ リークが発生していた。IE6 の時はそのプロセスが終了した時に、IE7 の時はユーザーが別ページにナビゲートした時に、それぞれ Break していた。
しかし IE8 では、JScript メモリ管理システムが JScript で参照している DOM Object までも管理するので、必要な時に Break することができるのでメモリリークが発生しない。(図があると便利なんですよね。。。すみません。)
IE8 の Debugger について
- JavaScript のデバッグ、CSS と HTML のデバッグができる
- バージョンスイッチ (IE8 モードから IE7 モードや IE5 モードへ簡単にそのサイトの表示状況を移行させて、動作確認ができる)
新しいシナリオについて (Selectors API)
- Element の参照のスクリプトパフォーマンスの向上
- CSS Selectors は検索に長けており、遅い DOM の代わりに CSS?Selectors エンジンを JavaScript に expose することで、W3C の Selectors API in DOM をサポートすることになる。これによって、CSS Selectors で提供されるのと同じ Syntax を使ってスクリプトが elements/attributes を探し出すことができます。
Challenges Developing Cutting Edge Web Applications
- Ajax ページのナビゲート
- 簡単に言うと、Ajax で操作した内容をブラウザの「進む」「戻る」ボタンを使って操作を戻すことができるようになる。
- これを実現するためには、"Window.location.hash" を使って、Ajax のナビゲーションを保存できる
- "Window.navigator.onLine" オフラインかオンラインかを確認する
- データをローカルに保存することでパフォーマンスの向上を狙う
- Ajax アプリやサイトにおいて、例えば回線が切れてしまったような場合、フォームに入力した内容を Submit しようとした時に、通常は消えてしまう入力データ (や、Async Data など) を一時的にローカルに保存できる。
- ドメイン毎に 10MB、タブ毎にそれぞれのセッション Store を持つ (Public Store ではない)
- Clear() メソッドでドメインごとのストアを削除
(先日、この Blog 記事を書いていて、ホテルの回線が切れていることに気がつかずに Post ボタンを押したら、当然投稿できなくて、表示を Back したらタイムアウトで内容が消えてた、ということが、この実装を活用することで、例えばネットワーク回線が切れていて Post (Submit)できない状況の場合、入力した内容をローカルに保存する、という仕組みにしておけば、いいのに、、と思いました。)
- Cross Domain Communication において、同じサイトのポリシーを適用することができる
Cross Domain Communication は他のドメインからデータを持ってこれるが、ブラウザはサイトを悪意のあるコードから守るため、その Communication を Block する。
- Cross Domain Request (XDR) を使うことで、安全に Cross Domain Communication を実現できる
(サンプルコード)
- Cross Document Messaging (XDM) 他のドメインからのフレーム間のデータのやり取りを実現できる (HTML5 の実装を使っている)
ARIA サポート
ARIA は Dynamic で スクリプト化された Web ページを Accessible にするための Web 標準技術です。
ARIA の Role, States とプロパティは、Assistive 技術によってそのコミュニケーションに使われます。
(コード サンプル : DEMO では読み上げを行っていた。)
? role="checkbox" aria-checked="checked“>
?My checkbox
以上でセッションは終了しましたが、いまいち分かりにくいところは HandOnLab に行ってやってましたが、最終日は 13:00 で終わりだったので、この Ajax のところだけ不完全燃焼気味です。いくつかサンプルを使って、試してみたいと思います。
五寳
[Update : IEAK について話をしたのは、Marc でなくて、2日目の Scott でした。Marc には、文中にあるように HTML と DOM などで修正された一覧はないのか?ということを質問して、確認してみるという回答をもらったのでした。。。]