ブラウザとOSの違い

 多くの人が利用しているのがWindowsという名前のOSです。OSはOperating System (オペレーティングシステム)の略で、様々な処理を行う土台となるものです。Windows以外のOSも多くあります。Macintosh上で動作するMacOS、多くのマシン上で動作するUNIX (Linux, FreeBSDなど互換OS含む)、日本産のBTRONなどがあります。携帯デバイス/携帯電話には、また別のOS (Windows CE, ITRON, Symbian) が存在しています。
 OSが異なれば、その上で動作するプログラム、アプリケーションも変わります。インターネットでは、そのようなOSの違いを乗り越えて様々なデータをやりとりすることができるようになっています。違いを乗り越えるために、多くの標準化が行われますが、必ずしもうまくいくわけではありません。これが標準である、といってもシェアの多い(使用している人の多い)ブラウザで動作しなければ絵に描いた餅になってしまいます。結果的にはよりシェアの多いブラウザと、それ以外のブラウザに対応させることになります。
 OSが異なれば動作も変わりますが、同じOSでもブラウザが変われば同じJavaScriptコードでも動作が変わります。同じブラウザであってもバージョンが異なれば、やはり動作が変わってしまいます。それでは、Ajaxを使って何かを作成する場合、どうすればよいのでしょうか。まず、最もシェアの多いInternet Explorerには対応させることは重要です。次にシェアがあり多くのOSで動作するFirefoxに対応させるのがよいでしょう。幸いにしてFirefoxで動作するAjaxのコードはOperaやSafariなどでも動作します。実際の所、Internet Explorerだけが例外で、他はほぼ共通と言えます。ただ、MacOS X上で動作するSafariは若干動作が異なるため安いMac miniなどを購入して検証すれば良いでしょう。
 MacOS XではデフォルトのブラウザはSafariになっていますが、Internet Explorer 5を利用しているユーザーも多くいます。ところが、このブラウザではAjaxを利用することができません。何が不足しているか、というとHTTP通信を行う機能です。これが存在しないためAjaxが動作しません。また、このブラウザはマイクロソフトが今後バージョンアップを行わないことを明示していますので、完全に動作対象から外れます。このようにAjaxに対応していないブラウザには、それなりのメッセージを表示するなり、別の対処を行う必要があります。
 まとめると以下のようになります。

●最低限対応すべきもの
 Windows XP + Internet Explorer 6

●より多くの環境に対応させる場合
 Windows 98/Me/2000/XP/2003 + Internet Explorer 5/Firefox/Opera 8,9
 MacOS X + Safari/Firefox/Opera 8,9
 UNIX + Firefox

 OSとブラウザが異なる場合には、これらを判別して処理するのが以前からの方法です。しかし、これだけ多くの環境を細かく調べていたのでは手間がかかって仕方ありません。このため、AjaxではHTTP通信ができるかどうかで判別するのが一般的です。HTTP通信ができればAjaxのプログラムを動作させ、それ以外の場合では別ページに移動させる、といった処理を記述します。

 それでは次にXMLHttpRequestを使って通信を行ってみます(すでに既出ですが)。

[3:XMLHttpRequestを使うへ]
[目次へ]

(2005.12.16)