2017年10月26日木曜日

レンダリングエンジン・クロスブラウザとは

こんばんは、こうちゃんです。

ちょっと前回「ブラウザとは」を解説したのですが、
その内で、今後各種ブラウザの紹介をする際に、
ブラウザの個性を決定づける部分で、
画面描画機能の差も大きいため、
今回はちょっと単語の説明で、
「レンダリングエンジンとは」を語っておこうと思います。

レンダリングエンジンとは、

ブラウザの中に搭載されている機能で、
ウェブサイトを閲覧する際に、サーバーから取得してきたファイル内容を、
ある規則・法則に従いユーザーに見えるように描画する機能です。

本来国際的にも基準・標準が定められているWEBの世界においても、
このレンダリングエンジンが、WEBサイトのソースをどう解釈するかで、
画面の表示のされ方が異なることはよくあります。

定番ブラウザのIEなどに使用される
trident

FireFoxを中心に使用される
Gecko

Safariに使われる
webkit

のように、定番ブラウザの世界でも数種類あります。
これらのレンダリングエンジンの差が、
実際に、あるホームページを見た時に、このブラウザと、あのブラウザでは、
開いた時の見栄えが違う、のような現象を引き起こします。

特に近年、スタイルシートが飛躍的な進化を遂げているのと、
Javascriptの高度な利用が多くなってしまっているため、
ブラウザ依存、と言われる、あるブラウザでのみ動くサイト、
のようなものも多くなってしまっています。
(ここらの事情が開発者泣かせです)


この搭載レンダリングエンジンによりブラウザはかなり特徴づけられますので、
今後ブラウザの紹介・解説する際には記録するようにします。


そして、よくブラウザの性質を語る上で欠かせない、
レンダリングエンジンの内で、
Tridentの解説をば。

Trident (トライデント)は Internet Explorer に搭載されている HTML レンダリング エンジンの名称で、
ライブラリ ファイルの名称から MSHTML とも呼ばれている。

Internet Explorer 4.0 より導入されたもので、
Windows 向けではアップデートを重ねているが、
Macintosh 向けの Internet Explorer for Mac は次のバージョンの 5.0 で Tasman に置き換えられた。
Internet Explorer 7 とそれ以降に含まれるバージョンではウェブ標準に準拠するように開発されている。

Trident はソフトウェア開発者が自分のソフトウェアにウェブ ブラウズ機能を容易に追加できるよう、
ソフトウェア コンポーネントとして設計されている。

Trident ではウェブ アクセスと編集のための COM インターフェイスが提供されている。
例えば、Trident のウェブ ブラウザ コントロールを使用してウェブ ページを表示したり、
表示中の各要素の値を取得・変更したり、
表示したウェブ ページ上で発生したイベントを取得したりといった機能を組み込むことができる。

Trident の機能は mshtml.dll というライブラリとリンクすることによって利用可能であり、
C++ や .NET といった COM をサポートする処理系から扱うことができる。

(参照 wikipedia)

とのことです。

現在では、
IE(Internet Explorer)で用いられている他、
Sleipnir や Lunascape といった各種ブラウザのレンダリングエンジンに採用されている他、
Windows に含まれる Windows Media Player などのアプリケーションの
インターネット対応にも使用されている、といった状況です。


それと並び、メジャーなレンダリングエンジン、

Gecko

の紹介を少し

−−−−−

Gecko(ゲッコー)とは
Netscapeシリーズ 6以降およびMozillaソフトウェアのために開発されたオープンソースのHTMLレンダリングエンジン群の総称。
HTML、CSS、XUL、JavaScriptなどを解釈する。

※なお、Geckoは英語でトッケイヤモリの意味を持つ。

Mozillaは1998年に公開されたNetscape 5.0へ向けて開発中だったソースコードを元に開発されていたが、軽量化のために当時買収したDigital Style社のエンジンをベースにして新規に書かれた。
これがGeckoである。
パース部分はW3Cによる勧告に合致することを目標に作成されている。
1.8系列以前ではWeb Standards ProjectがCSS 2.1のテストとして用意したAcid2に合格していなかったが、1.9系列からは合格している。


このGeckoをレンダリングエンジンとして搭載しているブラウザは、
多数あるが、
ユーザーがある程度多く、有名なものでは、

・Lunascape (2以降。IEコンポーネント、WebKitの利用も可能)
・Mozilla Firefox、およびそのソースコードを使用したブラウザ (Flock, K-Meleon, Pale Moon など)
・Sleipnir 2 (プラグインによる拡張。後に当該プラグインは開発停止している)

などがある。

−−−−−

個人的な感想では、
Tridentエンジン(特にIEに搭載された場合)は、
CSSの本来意図した動きをしなかったりするので、
あまり好きでないので、
ブラウザとしては、
Geckoエンジン採用の方が、見やすい&対応したウェブサイトが作りやすいです。

以前の日記で、
様々なブラウザを使うことを話したので、
ここでその関連で、WEB開発で必ず必要な、

クロスブラウザ(または クロスブラウザ対応)

についてご説明します。

クロスブラウザとは、
Internet Explorer や Firefox 、 chrome 等、
webブラウザの仕様の違いなどによる挙動の違いをなくす技術のことです。

CSSやJavaScriptといったブラウザ側で解釈するものは、
まったく同じコードを書いたとしても、
ブラウザの解釈により、違う振る舞いをして、
制作側の意図と違う挙動をする場合があり、
それをなくし、本来の意図の挙動をさせるための技術になります。

通常、レンダリングエンジンといって、
ブラウザの、HTMLソースを受け取り画面への出力を決めるエンジン部分により、
おおまかに動きは決まっていますが、
時にブラウザにより、さらに独特な動きをしたりします。


そのため、あまりにマイナーなブラウザや、
InternetExprorer の過去バージョン(IEはかなりバージョンごとに挙動が違う)などは、
対応をあきらめる場合も多いです。

そのような事情で、
WEB制作側として、動作保証する推奨ブラウザを宣言している場合が多いです。


あと、ついでなので、ちょっと、
初のGeckoレンダリングエンジンのブラウザ紹介を


〜〜〜〜〜〜〜〜〜〜〜
Firefox

正式名称:Mozilla Firefox(モジラ ファイアフォックス)

アメリカ合衆国『Mozilla Foundation』が開発するオープンソース・クロスプラットフォームのウェブブラウザである。

また、Firefox の技術を元にモバイル版の開発も進められ Firefox for Mobile がリリースされている。


特徴:
レンダリングエンジンに Gecko を採用
Mozilla の開発成果である HTMLレンダリングエンジンの Gecko を引き継いで採用している。
そのため、HTML、XML、CSS、canvas要素、SVG などのウェブ標準に対する準拠度が高い。
標準技術の採用を主眼としつつも、過去に書かれた多くのページと互換を保つために非標準技術をサポートしている。

タブブラウズ機能
同一ブラウザウィンドウ上に、タブと呼ばれる表示ウィンドウ切り替え機能を搭載することで、複数ページの閲覧や操作性を向上している。
また一つのウインドウだけでブラウジングができる「シングルウィンドウモード」という機能や、ポップアップウィンドウの制御を行う機能も実装されており、不要なタブを極力開かないですむような設定を行うこともできる。
タブブラウズ機能はユーザーの利便性を損いにくい必要最低限の範囲で実装されているが拡張機能のインストールで挙動を変更したり、より細かい設定を行ったりすることができるようになっている。

マルチプラットフォーム
Windows ・ Mac OS X ・ Linux の 3 種類の OS 環境が正式にサポートされており、リリースは同時に行われる。
Solaris 向けのバイナリも公式サイトの FTP サーバーで配布されている。
また、公式ではないものの、BSD やその他の UNIX のバイナリを配布するサイトもある。
Firefox が様々な OS に対応している理由としては、XUL や XPCOM といった OS に依存しない技術を採用している点が挙げられる。


他にも種々のメリット・特徴もありますが、
このあたりの特徴が評価され、
IEより後続の開発でありながら、
コアなネットユーザーには支持され、
多々利用されるようになっています。

また、IEには無い機能で、
ブラウザをインストール、使用開始以降も、
アドオンと呼ばれる追加機能を自由にインストールでき、
また、そのアドオンの数々が、
無料な上に種類も豊富で、
通常でしたら、別途ソフトを購入しなければ実現できないような機能が平気で配布されています。

そのあたりも、Firefoxの人気の原因となっているようです。

こうちゃん

0 件のコメント:

コメントを投稿