|
控えめなJavaScript(英語:Unobtrusive JavaScript)とは、WebページでのJavaScriptの利用における一般的なアプローチである。この用語は正式には定義されていないが、基本的な原理は一般的に次のようなことが含まれると理解されている。 * 機能(behavior layer)の、Webページの構造/コンテンツ、表示との分離 * 伝統的なJavaScriptプログラミングの問題(ブラウザによる違いや拡張性の欠如など)を回避するためのベストプラクティス * 高度なJavaScriptの機能をサポートしない可能性のあるユーザエージェントをサポートするための、プログレッシブエンハンスメント ==新しいパラダイム== 歴史的にJavaScriptは本格的なアプリケーション開発には適さない、扱いにくい言語とされてきた。 これは主に、言語そのものと、各種ブラウザでのドキュメントオブジェクトモデル(DOM)の一貫性のない実装、 さらにバグを生みやすいコピーアンドペーストで作られたコードが広く使われてきたことによるものである。ランタイムエラーは非常によく見られるため(また、デバッグが非常に困難であるため)、スクリプトが多かれ少なかれ意図したとおりに動いている限り、それを修正しようとするプログラマはほとんどいなかった。 しかし、一部のブラウザでは全く動かないスクリプトもあった。 一部のWeb開発者は、1994年以降、グレースフル・デグラデーション(適切な低均作用)を推奨してきた。〔 Aaron Gustafson. "Understanding Progressive Enhancement" . 2008. 〕 近年、標準に準拠したブラウザや、JavaScriptフレームワーク、高品質なデバッグツールの出現により、体系化され、拡張可能なJavaScriptコードが可能になった。そして、Ajaxインターフェースの出現によって、そのようなコードが望まれるようになった。JavaScriptはかつて、バリデーションや装飾的な真新しさを出すなどの、比較的シンプルで非クリティカルなタスクを行う言語だとされてきたが、現在はWebサイトの中核機能の一部にもなりうる巨大で複雑なコードベースを記述するために使われている。ランタイムエラーや予期しない動作は、もはや小さな厄介ごとではなく、致命的な欠陥である。 控えめなJavaScriptの支持者は、それをより大きなウェブ標準の動きの一部として見ている。ブラウザ間の互換性への要求によって、標準化されたマークアップとCSSがより重視されるようになったが、リッチインターネットアプリケーションの需要によって、JavaScriptの使用法のベタープラクティスを志向した動きが促進されている。JavaScriptプログラミングに関連した控えめさ(unobtrusiveness)の概念は、2002年にStuart Langridgeによって、彼の記事”Unobtrusive DHTML, and the power of unordered lists”の中で考案された。彼はその記事の中で、イベントハンドラを含むすべてのJavaScriptコードをHTMLの外に置くという方法を主張している。その後、Stuart Langridgeはこの考え方を本や記事の形式でさらに詳しく述べた。 〔 (Reference to the first edition, since it shows how the author pioneered the concept.)〕〔E.g.: 〕 David Flanaganは控えめ(unobtrusive)なパラダイムの本質的な要素を洗練して定義しようとした。彼は影響力のある著書” JavaScript: The Definitive Guide”の中で、具体的な公式はないものの3つの主要な目標があると述べている。 # JavaScriptのモジュールをほかのモジュールと分けるとともに、JavaScriptをHTMLマークアップと分離すること # 控えめなJavaScriptは、グレースフル・デグラデーションする必要がある。つまり全てのコンテンツはJavaScriptが動作せずとも利用可能でなればいけない。 # 控えめなJavaScriptは、ユーザが障害を持っていたり、一般的でないブラウザを使っていたり、一般的でない設定をしていたりしても、HTMLのアクセシビリティを低下させてはならず、理想的にはそれを向上させるべきである。 ウェブスタンダードプロジェクトはJavaScriptマニフェストの中で控えめなDOMスクリプティングの4つの利点を説明している。 # 抄文引用元・出典: フリー百科事典『 ウィキペディア(Wikipedia)』 ■ウィキペディアで「控えめなJavaScript」の詳細全文を読む スポンサード リンク
|