IE9/10/11未対応ブラウザをIE9/10/11モードで動かすIE9が発表されたずいぶんと経ち、更新が続いているコンポーネントブラウザの多くはIE9に正式対応はしました。しかし更新が止まっているブラウザはIE9への対応は望めない状態にあります。せっかくコンポーネント部分がIE9になったことで、Javascriptの高速化、レンダリングへのGPU支援、CSSへの対応強化などがなされているのに、未対応のコンポーネントブラウザはその性能を発揮できない状態にあります。 そこで、IE9に未対応のブラウザをレジストリに登録することにより、IE9モードで動かす方法を記載します。これは未対応ブラウザが対応ブラウザになるという意味ではありません。未対応のままだけど、無理矢理IE9モードで動かしちゃうぜ、ベイビー。どんな不具合が出ようと知ったことじゃないぜ、イエェーイというものです。 また、Windows7やWindows8でIE10/11を使用している場合も同様です。同じくレジストリにIE10/11モードで動かすように指定します。 当然の話ですが、IEコンポーネントを使用してるブラウザのみの話です。ただしFirefox、Google Chromeに拡張機能のIE Tabを動かす時にも影響を与えます。IE Tabの方で動作モードを指定できない場合は個別に登録が必要になります。その場合、FirefoxならFirefox.exeまたはplugin-container.exeを、Google ChromeならばChrome.exeを登録してください。(IE9に未対応のIE TabでIEの描画モードを設定した場合、IE9モードからIE7やIE8モードに書き直される場合があると思われます。) MoonBrowserをそのまま動かしてみるIE9が入っている環境で、未対応のコンポーネントブラウザを起動させた場合、IE7モードで動きます。これはそういう仕様です。しょうがないですね。 ここでは、タブブラウザの興隆に大きく寄与し、Sleipnirにも大きな影響を与えたブラウザ、MoonBrowserを例にとって説明します。MoonBrowserのバージョンはver 0.50 A build 2106。更新は2003/09/08で止まっています。IE7にすら対応していません。 当然、このままではIE9の性能は発揮できませんが、まずAcid2テスト、Acid3テスト、SunSpiderベンチを動かして見ましょう。Acid2テストは主にCSS標準への準拠度を、Acid3テストはDOMやJavaScriptなどのさらに多くのウェブ標準への準拠度を、SunSpiderベンチはJavascriptの速度を測るテストです。 はい、ぼろぼろですね。Acid2はひでぶ状態、Acid3は13点? SunSpiderベンチは動作すらしません。 レジストリにMoonBrowserを登録するでは、早速今回の肝、レジストリへの登録を行いましょう。ちなみに一応言っておきますが、レジストリを弄るのは完全に自己責任でお願いします。普通に操作すれば起動しなくなるとか、まずあり得ませんが。
このキーはブラウザがどのモードで動くかを指定します。>MS社の資料を参考に。大ざっぱに言うと値が7000ならIE7モード、8000ならIE8モード、9000ならIE9モードです。IE10/11を使ってるなら、10000でIE10モード、11000でIE11モードになります。
IE8モードでMoonBrowserを動かすでは早速、IE8モードのMoonBrowserでAcid2テスト、Acid3テスト、SunSpiderベンチを動かしましょう。 Acid2テストは見事に合格。スマイルマークが出ました。Acid3テストはIE7モードの時よりはマシですが、21点ですね。SunSpiderベンチは477.6msです。IE7モードの時はベンチすら動かなかったので大きな進歩です。 IE9モードで登録する
では、恒例のAcid3テスト、SunSpiderベンチです。Acid2テストはIE8モードですでに合格したので省きます。 はい、Acid3テストは95点。これは素のIE9と同じ点です。SunSpiderベンチはより速くなって276.8msになりました。これも素のIE9とほぼ同じ数字です。Web準拠度、Javascriptの実行速度共にIE9と同じになりました。やったね。 お次はGPU支援これでMoonBrowserもIE9と同等の機能になった? いえいえ、まだ気が早い。IETestDriveにある、FishIE Tankを見てましょう。魚の数は1000匹で。
このキーはブラウザのGPUレンダリングの有効か無効かを指定します。>MS社の資料を参考に。値が1なら有効、0なら無効です。
ちなみにレジストリに登録した場合でも、インターネットオプション>詳細設定>GPUレンダリングではなくソフトウェアレンダリングを使用する、にチェックが有った場合はそちらの設定に従ってGPU支援は無効になるので注意してください。 さらに高速に、同時接続数を増やす以上のレジストリはIE9モードで動かすためのものですが、さらに高速にさせる方法があります。それは同時接続数の増加です。これが少ないとページ内の画像などを読み込む際に、一つの画像の読み込みが終わってから、次の画像の読み込みを始める、といった挙動になります。また同時に幾つものファイルをダウンロードするときにもこの値が参照されます。 最近はネットへの接続速度も速くなっているので、同時接続数を増やせば、それだけの数の画像を同時に読み込んで一気に表示させることが出来るようになるでしょう。ただし、同時接続数は増やしすぎても、相手のサーバーに迷惑をかけるだけだし、自分の回線速度以上には読み込めないので、ほどほどの値にしたおくのが無難です。回線が遅い人の場合は増やしすぎても逆効果になるでしょう。
このキーはHTTP接続の最大同時接続数を指定します。HTTP 1.0とHTTP 1.1の二つの規格があるので、両方とも指定します。>MS社の資料を参考に。値は2〜128までが有効になります。IE9の基本値は(多分)6です。 省電力モードの解除コンポーネントブラウザで使用時に、CPUが省電力モードで動いてややパフォーマンスが落ちることがあるようです。以下のレジストリに実行ファイル名を登録することで、電源設定と連動して動くようになります。
この二つのキーが存在しない場合があります。その場合はFeatureControlキーの上で右クリック>新規>キーと進んで このキーに関してはまだ説明されているページがありません。また登録してもベンチマークの結果が全く変わりない場合もあります。 DOMストレージの無効化IE11環境でコンポーネントブラウザを使用した場合、徐々に反応が悪くなり、止まってしまうことがあるようです。DOMストレージとはクッキーに近い機能で、ローカルにちょっとしたデータを保存する仕組みです。DOMストレージを無効にすることで動作が改善される場合があります。
HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\Main\FeatureControl\FEATURE_DOMSTORAGE ただし、DOMストレージを使用しているサイトではログインできないなどの問題が出ますので、その時は素のIEを使うか、Chrome、Firefoxを使うといいでしょう。無論、このレジストリ項目を消してブラウザを再起動してもいいです。 現在、AnciaではDOMストレージを有効にしたまま、IE11に対応しています。 レジストリへの登録完了これでMoonBrowserのレジストリへの登録は終わりです。MoonBrowser以外で自分の使っているブラウザを登録したければ、その名前で登録するだけです。IE6時代の古いコンポーネントブラウザでもIE9の性能が、完全ではないですが、まぁまぁ発揮できるようになりました。これでコンポーネントブラウザはあと10年は戦えますね。
設定すべきレジストリのまとめです。mb.exeの部分は登録したいブラウザの実行ファイル名にしてください。
レジストリのFeatureControl以下には、今回使った6項目以外にもたくさんの項目があります。それらの利用法が解明されれば、IE9と全く同じ性能を引き出すことが出来るようになるかも知れません。ただ、IE9と同等の速度で動かすにはコンポーネントブラウザ側がマルチスレッドに対応している必要があるようです。 繰り返しますが、これらはあくまでもIE9モードで動かしているだけで、IE9環境で正常に動作する、ということではありません。ダイアログを自動で閉じるが効かない、とかブラウザのほうでの対応が必須なものもたくさんあります。なるべくなら、IE9対応を謳っているブラウザを使った方が、精神衛生上よろしいでしょう。 レジストリへの登録を解除するもし、レジストリへの登録を解除したい場合は、上記で作ったキーを削除するだけです。
|