Web Issue(ウェブ イシュー)は、クリエイティブホープの社員が日々の業務で感じた事や培った技術、Web構築のノウハウなどを発信するBlog(ブログ)です。

ページ内を移動するためのリンクです。

Web Issue クリエイティブホープの社員ブログ

Web Issue(ウェブ イシュー)はクリエイティブホープの社員が「Webのプロ」としての視点で語るブログです。Webに関する知識や技術など実務に役立つノウハウから、日々感じている素朴な疑問まで、様々な情報を発信していきます。

WEBアプリケーションチーム

復習:JavaScript

今回は、JavaScript(JS)について知識のおさらいをしたいと思います。エンジニア的には「ちょっと違うんじゃないか」と思うかもしれませんが、あまり詳しくない方も対象として、噛み砕いた説明をするためですので、ご了承ください。

◆そもそも、JavaScriptとは
主にWebブラウザ上で動作し、HTMLの書き換えや入力フォームの自動補完など、ウェブページの演出や補助を目的として使用されたり、リッチ・インターネット・アプリケーションの構築に使われたりする、スクリプト言語※です。


※スクリプト言語

アプリケーションの動作について、台本(script:スクリプト)のように記述し制御することから名づけられた、簡易的なプログラミング言語の呼称。


ちなみにブラウザで動くスクリプト言語は他にもあります。
JScript (IEで実装されているJavaScriptと似ているスクリプト言語)
VBScript (IE × Windowsでしか動かないスクリプト言語)

JavaScriptの基礎
JS
の機能はセキュリティ上の理由でブラウザの中でしか動きません。
例外はありますが、基本的にJSでハードディスクに何かを保存したり別のアプリケーションを立ち上げたりすることは出来ません。

その上でJSは大きく3種類の機能があります。
1:BOM(ブラウザオブジェクトモデル)
>ブラウザをオープンしたりクローズしたり、前のページに戻ることが出来ます。
ブラウザアプリケーションを操作する機能です。

2:DOM(ドキュメントオブジェクトモデル)
>文字を書き換えたり、スタイルを変更することができます。
ブラウザが取り込んだHTMLを制御する機能です。
(
例としては、クリックでの表示切替や、ドラッグアンドドロップ)

3:外部通信
>外部にHTTPで接続してサーバでプログラムを実行したり、情報を取り出したりすることが出来ます。
(いわゆるAJAXといわれる非同期通信を可能にする機能です。)

JavaScriptの問題点
JavaScript
の問題点は、みなさんも知っての通りブラウザごとにJSの動きが異なることです。このため、実際に実装するためには各種ブラウザでのテストや、クロスブラウザ対策が必要になります。

 

クロスブラウザ対策の一例として、JavaScriptに各ブラウザ別の動作パターンを記述するケースがあります。このほか、JavaScriptを利用した入力フォームの自動補完機能などでは、ブラウザによって動作しない場合の例外処理をきちんと定義しておくことも大切です。


JavaScriptの現状と今後
ドキュメントオブジェクトモデルに焦点を当てますと
DOM
W3Cにより仕様が勧告されてきました。

1998
10 DOM Level 1勧告(XML制御のコア機能とHTMLへの制御機能)
2003
1 DOM Level 2勧告(イベントやCSSの制御機能の拡張)
2004
4 DOM Level 3勧告(XMLへのさらなる互換性向上)

となっています。
DOM Level 3
が勧告されて6年立ちましたが、ようやくIE9DOM Level 2に対応するそうです。


主要ブラウザの互換性が高くなってきて、開発者のJSに対する敷居も低くなってきました。
今後、大手企業もどんどんサイト内でJSを使用した様々な演出効果やウェブアプリケーションが出てくるでしょう。

 

しかし、JSの活用が進んでくると逆に「JSが動く環境」「JSが動かない環境」どちらでも見られるサイト設計がさらに重要になってくるのではないでしょうか。

 

たとえば、JavaScriptが動作しない場合に、少なくともレイアウトは崩れないようページデザインを設計する必要があります。

また、JavaScriptを利用し、郵便番号を入力してボタンをクリックすると住所が補完されるようなフォームでは、JavaScriptが動作しない場合には、住所補完用のボタンを表示せず、通常の(ユーザーが住所すべてを入力する)フォームに見えるようにする工夫も必要になってきます。

 

JavaScriptWebサイトに積極的に取り入れつつも、ユーザーの利便性を損なわないサイト作りを心がけたいものです。

(アプリケーションチーム)

2010年6月 1日 19:38 | トラックバック(0)

トラックバック(0)

このブログ記事を参照しているブログ一覧: 復習:JavaScript
このブログ記事に対するトラックバックURL: http://blog.creativehope.co.jp/mt/mt-tb.cgi/298