IE8:プログラマーのための革新の最も包括的な説明(だけでなく)

以下は、優れたコンピューターマガジンC`tでの掲載を許可された私の記事のオリジナルです。残念ながら、市場で生き残っておらず、非常に低い状態にあります。 問題が表示されなくなったため、この記事は公開されませんでした。 したがって、私はそれをHabréで公開することに決めました。



この記事は膨大な量であり、一部の情報はすでにHabréで公開されていることをすぐにお知らせします。 この記事の目的は、Internet Explorerの新しいバージョンに関する最大量の情報を組み合わせて、許容可能な量で提示することです。



コメントでは、コメントと修正を受け入れます。



はじめに



Internet Explorerの歴史は1995年に遡り、Microsoftは今年8月にSpyglass、Inc.からライセンスを受けてリリースしました。 それから10年以上が経過し、Internet Explorerは大多数のユーザーを獲得して世界を征服し、そのバージョンは8番に変更されようとしています。



広く使用されているにもかかわらず、Internet ExplorerはWebプロジェクトの開発者に悪名高い。 これは多くの要因によるものであり、主な理由は、W3Cコンソーシアム標準の実装が遅いことと、ユーザー間の新しいバージョンへの移行が非常に遅いことです。 膨大な数のユーザーがまだ古いブラウザーを使用しているという事実により、Web開発者はそれらをサポートし、あらゆる種類のトリックやいわゆるハッキングをコードに組み込んで、同じサイトがFirefox、Safari、Operaブラウザーと同じように見えるようにしなければなりません、およびInternet Explorerのすべての一般的なバージョン。



ただし、ブラウザーの8番目のバージョンのリリースにより、Microsoftは開発者の子孫に対する態度を平準化する試みを行っているようで、古いバージョン用に作成された以前のコードのサポートを残さずに、待望の標準のサポートを提供しています。

この記事は、開発者向けのInternet Explorer 8の新機能、変更点、およびこのブラウザーが提供する新しい便利な機能の使用方法を示すことを目的としています。



プログラマー向けInternet Explorerの歴史



1995年に登場したIEの最初のバージョンは、SSL、Cookie、VRMLやRSAなどのサポートを含む2番目のバージョンと同様、広く使用されていませんでした。 1996年にリリースされた3番目のバージョンは、なんとか達成できました。 彼女は、CSS、ActiveX、フレーム、およびJavaアプレットのサポートを受けました。 4番目のバージョンでは、DHTMLとPNGが登場しました。 5番目のバージョンでは、XML / XSLTのサポート、CSSバージョン1および2、ファビコン、HTMLアプリケーションのサポートが改善されました。 XMLHttpRequestの導入は、ユビキタスAJAXテクノロジーを後ほど開始するものであり、特に有用です。 6番目のバージョンは、DHTMLのサポートの改善、CSSレベル1、DOMレベル1およびSMIL 2.0の部分的なサポートの革新により、寛大さを失いました。 ただし、6番目のバージョンは、セキュリティの面で最も脆弱なブラウザのバージョンになったようです。 Internet Explorerの7番目のバージョンでは、IDNサポートが追加され、CSS、DOMおよびHTMLのサポートがわずかに改善され、Gzipおよびdeflateによるページ圧縮のサポートが改善されました。 ただし、主要な修正の1つは、PNGファイルの透明性に対する待望のサポートでした。



第8バージョン



Internet Explorer 8の最初のパブリックベータは、2008年3月に登場しました。 新しいバージョンは、一から書き直されたレンダリングエンジンを受け取り、開発チームは、以前のバージョンの多くのエラーを修正するCSS 2.1、CSS 3、HTML 5などの標準をサポートすることを目指していると報告されました。 そして、期待が叶いました。新しいバージョンには、abbrタグの導入、自動生成されたCSSコンテンツのサポート、CSS表示ルール:テーブル、ページングされたメディア、DOMストレージ、XDM、セレクターAPIなど、HTMLとCSSの多数の変更が含まれていました。 さらに、データのサポートがありました:クロスドメイン交換のためのURIとXDomainRequest、新しい機能がDOMに追加され、ARIA仕様のサポートが発表されました。

新しいバージョンとその革新に精通した後、MicrosoftはついにWeb開発者に注意を向け、ブラウザをより良くするために徹底的に作り直したようです。



8番目のバージョンのメカニズム。 7番目のバージョンを装って



Internet Explorerレンダリングの新しいバージョンは、次の3つのモードで機能します。

開発チームは、古いページまたは新しいページの特定のモードの強制サポートを提供しました。これは、以前のバージョンのブラウザーでの表示を目的としており、通常バージョン8で表示されるはずです。

必要なモードを設定するには、次のコンテンツを含むページにメタタグを追加する必要があります。

< meta http-equiv ="X-UA-Compatible" content ="IE=8" />





ここで、コンテンツ-ページが表示されるモードを示します。 コンテンツの主な値は次のとおりです。

さらに、コンテンツ値はこれらのモードに限定されません。 したがって、他のブラウザの値を指定できます。

< meta http-equiv ="X-UA-Compatible" content ="FF=3" />





これに加えて、コンテンツパラメータの値は「edge」であり、ブラウザの最も古いバージョンのサポートを示すことができます。

< meta http-equiv ="X-UA-Compatible" content ="IE=edge" />





「メタ」タグの指定に加えて、ブラウザモードを制御する別の方法があります-これはhttp-headerの転送です。



X-UA互換:IE = EmulateIE7



セキュリティメカニズム



DEP / NXによるメモリ保護



「メモリ保護を有効にしてインターネットからの攻撃のリスクを減らす」機能は、ブラウザの第7バージョンでも使用できますが、デフォルトでは有効になっていません。 確かに、この関数は64ビットプラットフォームでは使用できませんが、64ビットバージョンのWindowsのすべてのプロセスがDEPによって保護されているためです。 これで、この機能はデフォルトで有効になります。 DEP / NXを使用すると、データとしてマークされたコードの実行を防ぐことができます。 したがって、バッファオーバーフローなどの攻撃の層全体が遮断されます。



ActiveXの機能強化



Internet Explorerの8番目のバージョンでは、ActiveXコントロールは特定のユーザー(ユーザーごとのActiveX)にのみインストールできます。これにより、ユーザーが管理者権限で作業しないため、感染のリスクが軽減されます。 この場合、攻撃を受けているのは1人のユーザーのプロファイルのみであり、それ以上はありません。

サイトごとのActiveXは、ActiveX要素を1つの(独自の)サイトのみで実行し、他のサイトでは実行しないように設定できる新しい手法です。 ユーザーは、最初に必要なサーバーでのみ、たとえばSilverlightの使用を許可することもできます。 他のすべてと同様に、ActiveXインストールメカニズムの管理は、グループポリシーを通じて管理者が利用できます。



XSSフィルター



私の意見では、最も興味深いのは、組み込みのXSSフィルターです。これにより、「クロスサイトスクリプティング」攻撃からユーザーを保護できます。 XSS攻撃による脅威の大きさを少なくともおおよそ評価するには、XSSed.comにアクセスして、最小の公共リソースではなく、これらの攻撃の影響を受けやすいものを確認します。 これらのリソースにアクセスするだけで、あらゆるユーザーが被害者になる可能性があり、現在ではこのような「漏れやすい」サイトの数は2万を超えています。



XSSフィルターInternet Explorer 8は、いわゆるXSS攻撃に対するものです。 Type1タイプ。 ウィキペディアによると、このタイプの攻撃は最も一般的です。



何らかの理由でユーザーがリソースのXSSに対する保護を有効にできないようにするサイトでは、HTTPヘッダーでオプションを使用できます。



X-XSS-保護:0



プロジェクトでXSS攻撃に似た手法を使用した人に必要な場合があります。



その他のセキュリティの変更





CSSの変更



CCS式



CSSサポートに関するInternet Explorer開発チームの基本的な決定の1つは、いわゆるCCS式の拒否です。 これらの式を使用すると、JavaScript式をCSSコードに統合して、cssパラメーターのコンテンツを操作できます。 Internet Explorer 8のCSS式はデフォルトで無効になります。 生産性の面でセキュリティと高コストという名前の理由の中で。 ただし、CSS式のサポートはStrictおよびQuirks互換モードのままであり、既に記述されたコードをサポートします。



プロパティの命名の変更



Microsoftは、一部のCSSプロパティの命名規則を変更しました。 これで、すべての「非標準プロパティ」に接頭辞「-ms-」が付きます。 IE 8のCSS 2.1に完全に準拠するために、このようなプレフィックスは次の条件に適したプロパティを受け取りました。



接頭辞「-ms-」を受け取ったプロパティのリストを以下に示します(理由付き):

物件 種類 W3cステータス
-ms- アクセラレーター 延長
-ms- background-position-x CSS3 ワーキングドラフト
-ms- バックグラウンド位置y CSS3 ワーキングドラフト
-ms- 動作 延長
-ms- ブロック進行 CSS3 編集者の下書き
-ms- フィルター 延長
-ms- ime-mode 延長
-ms- レイアウトグリッド CSS3 編集者の下書き
-ms- layout-grid-char CSS3 編集者の下書き
-ms- レイアウトグリッド線 CSS3 編集者の下書き
-ms- レイアウトグリッドモード CSS3 編集者の下書き
-ms- レイアウトグリッドタイプ CSS3 編集者の下書き
-ms- 改行 CSS3 ワーキングドラフト
-ms- ライングリッドモード CSS3 編集者の下書き
-ms- 補間モード 延長
-ms- オーバーフロー-x CSS3 ワーキングドラフト
-ms- オーバーフロー-y CSS3 ワーキングドラフト
-ms- scrollbar -3dlight-color 延長
-ms- スクロールバーの矢印の色 延長
-ms- スクロールバーベースカラー 延長
-ms- scrollbar -darkshadow-color 延長
-ms- スクロールバーの顔の色 延長
-ms- スクロールバーのハイライト色 延長
-ms- スクロールバーの影の色 延長
-ms- スクロールバートラックカラー 延長
-ms- text-align-last CSS3 ワーキングドラフト
-ms- テキスト自動スペース CSS3 ワーキングドラフト
-ms- テキスト調整 CSS3 ワーキングドラフト
-ms- text-kashida-space CSS3 ワーキングドラフト
-ms- テキストオーバーフロー CSS3 ワーキングドラフト
-ms- テキスト下線位置 延長
-ms- 単語区切り CSS3 ワーキングドラフト
-ms- ワードラップ CSS3 ワーキングドラフト
-ms- 書き込みモード CSS3 編集者の下書き
-ms- ズーム 延長




開発者は、多くのサイトで古い値を新しい値に変換する必要があることを理解しているため、古い値は廃止と見なされますが、互換性のために8番目のバージョンでサポートされます。 IE 8用の新しいコードを開発するときは、新しい命名規則のみを使用する必要があります。



フィルターのプロパティ



変更はフィルターのようなプロパティに影響しました。 以前は、残念ながら、フィルター構文はCSS 2.1と一致しませんでした。 たとえば、示されたコードでは、コンマは無効と見なされました。

filter: progid:DXImageTransform.Microsoft.Alpha(Opacity=80, FinishOpacity=70, Style=2);





ブラウザの新しいバージョンでは、フィルター構文はCSS仕様に合わせられています。

-ms-filter: «progid:DXImageTransform.Microsoft.Alpha(Opacity=80, FinishOpacity=70, Style=2)»;





新しい構文では、プロパティ値が引用されていることが簡単にわかります。



CSS 2.1サポート



CSS 2.1のより完全な実装のために、次の擬似クラスのサポートが追加されました。



最後の3つはbeta2では使用できませんが、最終バージョンに追加されます。 さらに、次の擬似要素のサポートが追加されました。



次の要素は、部分的なサポートの代わりに完全にサポートされるか、追加されます。



CSS関数



url()関数の既存のサポートに加えて、8番目のバージョンでは、counter()とattr()の2つの関数のサポートが追加されます。



IE8のJavaScriptとAJAX



プログラマを支援するために、Internet Explorer開発チームはJavaScriptエンジンに大幅な変更と革新を加えました。



XDomainRequest(XDR)



XDRはXMLHttpRequestに似た新しいオブジェクトですが、ドメイン間で情報を交換するように設計されています。 XDR構文は、クロスサイトリクエストのW3Cドラフトアクセス制御に従います。



クロスドキュメントメッセージング(XDM)



XDMは、同じページにある異なるドメインのフレームにテキストフレームを送信できるようにする別の技術です。 このような交換は、HTML5 postMessageメソッドを介して行われます。

var testframe = document .getElementsByTagName( 'iframe' )[0];

testframe.contentWindow.postMessage( '!' );






このようなメッセージを受信するには、フレーム内のドキュメントで「onmessage」メッセージハンドラを登録する必要があります。

document .attachEvent( 'onmessage' , function (e) {



});








DOMストレージ



DOMストレージは、Cookieメカニズムに頼らずにクライアント側にデータを保存できるメカニズムです。 Cookieとは異なり、DOMストレージには多くの制限がありません:格納されるデータのサイズは大幅に増加し、DOMストレージデータはリクエストごとにサーバーに送信されません。また、DOMストレージに格納されている情報を他のウィンドウに表示する方法を制御することもできます。

Internet Explorerは、DOMストレージを操作するための3つのオブジェクトを実装しています。



以下は、DOMストレージの操作方法の簡単な例です。

localStorage.setItem( "name" , "" );



var name = localStorage.getItem( "name" );






XMLHttpRequest



XMLHttpRequestは、ホストが応答を待機するミリ秒数を設定できる新しいタイムアウトプロパティを受け取りました。その後、ontimeoutイベントが発生します。

var xhr = new XMLHttpRequest();

xhr.timeout = 10000;

xhr.ontimeout = onTimeout;



function onTimeout ()

{

alert( "timeout!" );

}






新機能



Internet Explorer 8のJavaScriptにもいくつかの機能が追加されました。





開発者ツール プロファイラーJavaScript。



Internet Explorerの8番目のバージョンでは、プログラマーの喜びのために、Firefoxブラウザー用の広範囲に及ぶFirebugアドオンを克服できるツールが追加されました。 このツールは単に開発者ツールと呼ばれ、次のパネルを表します。



パネルには、次のツールと機能が含まれています。



さらに、このパネルには優れた機能が含まれています-JavaScriptコードプロファイラー:



このツールを使用すると、JavaScriptコードのボトルネックを簡単に追跡できるため、Webサイトのパフォーマンスとページの読み込み速度が向上します。



おわりに



この記事では、プログラマーに提供するInternet Explorerの新機能を調べてみました。 判明したように、ブラウザの新しいバージョンには、Webプロジェクトの開発者向けの多くの変更、改善、修正、追加が含まれています。 この記事の執筆時点では、beta2はInternet Explorer 8の最新バージョンのままでしたが、Microsoftがブラウザーに細心の注意を払い、大幅に改善したことは既に注目に値します。 開発者がウェブのトレンドに遅れないようにすることは重要です。 人気のあるブラウザの新しいバージョンの開発は、これらの傾向の1つです。 上記の資料が、開発者が知識を補充し、Internet Explorer 8の最終バージョンが提供するいくつかの新機能についていくのに役立つことを願っています。




All Articles