概要 典型的なクライアントサイドの動的ウェブページは、 マークアップされた コンテンツ(HTML )、スタイルシート(CSS )、クライアントサイドJavaScript 、および画像などの埋め込みオブジェクトの4つの部分から構成されていると考えることができます。 [ 6 ] : 5 クライアントサイドJavaScriptの部分は、JavaScriptなしでは実現できない機能を追加することで、他の部分を拡張するものと考えることができます。[ 6 ] : 3
クライアントサイド JavaScript に関連する「非侵入性」の概念は、2002 年にStuart Langridge [ 7 ] が「非侵入性 DHTML と順不同リストの力」という記事で提唱しました。[ 8 ] この記事で Langridge は、動的 HTML (DHTML)を使用する際に、イベント ハンドラを含むすべての JavaScript コードを HTML の外に置く方法を主張しました。 [ 7 ] 彼は、このようなコードの構成の目的は「ブラウザがサポートしているユーザーにはより良いユーザー エクスペリエンスを提供し、サポートしていないブラウザのユーザーには影響を与えないこと 」であり、同時にWeb 開発者 にとってスクリプト作成が容易になることだと述べました。[ 7 ] Langridge は後にこの考えをさらに発展させ、「非侵入性」の核心的な意味は「特定の Web ブラウザが使用している DHTML 機能をサポートしていない場合でも、その欠如がユーザー エクスペリエンスにできるだけ影響を与えないようにすること」であると強調しました。[ 1 ] つまり、ラングリッジにとって「目立たない」とは、主に特定の状況でJavaScript機能が存在しないというユーザーの体験を指す。[ 1 ]
変異の定義 他の著者らは、目立たないことの本質的な要素に関する様々なバリエーションについて述べている。
デビッド・フラナガンの著書『JavaScript: The Definitive Guide 』(2006年)では、特定の公式はないものの、目立たないJavaScriptには3つの主な目標があると述べている。[ 4 ]
Web Standards Project は JavaScript マニフェスト (2006 年)の中で、「JavaScript の目的は、ウェブ ページにインタラクションを追加することでユーザビリティを向上させることである」と述べ、目立たないDOM スクリプティングの 4 つの利点を説明しています。[ 9 ]
ユーザビリティ :目立たないDOMスクリプトはユーザーの注意を引かないため、「訪問者は何も考えずにそれを使用する」。グレースフルデグラデーション :目立たないDOMスクリプトは、どのブラウザでも、たとえ失敗した場合でもエラーメッセージを生成しません。機能が正しく表示できない場合は、静かに消えていきます。アクセシビリティ :スクリプトが失敗した場合でも、ページはマークアップ、スタイルシート、および/またはサーバーサイドスクリプトを介してコア機能と情報を提供します。分離 :他のWeb開発者や将来のWeb開発者の便宜を図るため、すべてのJavaScriptコードは、他のスクリプト、マークアップ、またはコードファイルに影響を与えることなく、個別に管理されます。2007年のパリWebカンファレンス で、クリスチャン・ハイルマンは、目立たないJavaScriptの7つのルールを特定しました。そのうちのいくつかは、「目立たない」の他の狭い定義よりも範囲が広いものでした: [ 10 ]
「憶測はしない」:防御的なプログラミング 手法では、JavaScript が実行されない可能性、ブラウザが想定されるメソッドをサポートしていない可能性、HTML が変更されている可能性、予期しない入力デバイスが使用されている可能性、他のスクリプトが存在しない、またはグローバル名前空間を侵害している可能性などを考慮する必要があります。 IDや期待されるHTMLのその他の要素など、「フックと関連性」を見つけてください。 個々のDOMオブジェクトの走査は、可能な限りブラウザに組み込まれているCSSハンドラなどの専門家に任せましょう。 「ブラウザとユーザーを理解する」、特にブラウザがどのように不具合を起こすか、ユーザーがどのような前提を置いているか、そして通常とは異なる設定や使用方法を理解する。 イベントを 理解する。これには、イベントがどのように「バブリング」されるか、そしてEventほとんどのイベントハンドラに渡されるオブジェクトの機能などが含まれる。グローバル関数名やグローバル変数名の使用を避けることで、他のスクリプトとの連携を良好に保つことができます。 分かりやすい変数名や関数名を使用し、論理的で読みやすいコードを作成し、依存関係を明確にし、それでも混乱を招く可能性のあるコードにはコメントを付けるなどして、「次の開発者のために」作業を進めましょう。 非侵入型JavaScriptのより広い定義は、カプセル化 と抽象化レイヤー、 グローバル変数 の回避、意味のある命名規則、適切な デザインパターン の使用、体系的なテスト など、一般的なプログラミングのベストプラクティスと多くの共通点がある。[ 11 ]
参考文献 1 2 3 ラングリッジ、スチュアート (2005). DHTML ユートピア: JavaScript と DOM を使用した最新の Web デザイン . オーストラリア、ビクトリア州、コリングウッド: SitePoint. p. 75. ISBN 9780957921894 OCLC 60690615 . WebサイトにDHTMLを追加する際の重要な設計上の制約は、それが目立たないようにすることです。「目立たない」とは、特定のWebブラウザが使用しているDHTML機能をサポートしていない場合でも、その欠如がユーザーエクスペリエンスにできるだけ影響を与えないようにすることを意味します。ユーザーにエラーを表示してはならず、DHTMLによる機能強化がなくてもサイトは完全に使用できる必要があります。 (初版を参照。著者がこの概念を先駆的に導入したことがわかる。)同じ箇所は、本書から抜粋した記事にも掲載されている。Langridge , Stuart (2005-06-01). "DHTML Utopia: Modern Web Design Using JavaScript & DOM" . articles.sitepoint.com . 2010-04-21 の オリジナルからアーカイブ済み 。2016-10-18 に取得 。 ↑ Keith, Jeremy (2006-06-20). "Behavioral Separation" . www.alistapart.com . 2007-01-27 に取得。 このように動作をマークアップから分離することを、非侵入型 JavaScript と呼びます。 ↑ Olsson, Tommy (2007-02-06). "Graceful Degradation & Progressive Enhancement" . accessites.org . 2017-05-17 の オリジナルからアーカイブ済み . 2009-01-03 に取得 . JavaScript におけるプログレッシブ エンハンスメントは、近年ますます一般的になっています。その鍵となるのが、非侵入型 JavaScript です。非侵入型スクリプトは、それをサポートしていないユーザー エージェントによって静かに無視されますが、より高性能なデバイスによって適用されます。外部スタイル シートと同様です。 1 2 Flanagan, David (2006). "Unobtrusive JavaScript". JavaScript: The Definitive Guide (第 5 版). O'Reilly Media . p. 241–242 . ISBN 9780596101992 OCLC 64313259 ↑ Connor, Joshue O. (2012). "Unobtrusive JavaScript". Pro HTML5 Accessibility: Building an Inclusive Web . Berkeley, CA: Apress . pp. 71. doi : 10.1007 /978-1-4302-4195-9_3 . ISBN 9781430241942 OCLC 757486357 1 2 Goodman, Danny ; Morrison, Michael ; Novitski, Paul; Rayl, Tia Gustaff (2010). "JavaScript のワールドワイドウェブとそれ以降における役割". JavaScript Bible (第 7 版). インディアナ州インディアナポリス: Wiley. pp. 3–13 . ISBN 9780470526910 . OCLC 435731997 . 1 2 3 「動的なウェブサイトの構築」 www.netmag.co.uk 2006-08-09。2010-12-05 の オリジナル からアーカイブ。2010-05-18 に 取得 。 ↑ Langridge, Stuart (2002年11月)。 「目立たないDHTMLと順不同リストの力」 。www.kryogenix.org 。 2002年12 月 4日のオリジナルから アーカイブ。 2008年8月7日 取得 。 ↑ 「JavaScriptマニフェスト」 。www.webstandards.org。Web 標準プロジェクト 。 2006年6 月 14日のオリジナルから アーカイブ 。 2011年 2 月8日 取得。 ↑ Heilmann, Christian (2007). "The seven rules of Unobtrusive JavaScript" . icant.co.uk . 2011年5月2日の オリジナルからアーカイブ済み。 2011年 2月8日 取得 。 参照:Heilmann, Christian (2006). "Unobtrusive JavaScript". Thatcher, Jim; Burks, Michael R.; Heilmann, Christian; Henry, Shawn Lawton; Kirkpatrick, Andrew; Lauke, Patrick H.; Lawson, Bruce; Regan, Bob; Rutter, Richard; Urban, Mark (eds.). Web Accessibility: Web Standards And Regulatory Compliance . Berkeley, CA: Friends of Ed; distributed by Springer-Verlag . pp. 301–331 . doi : 10.1007/978-1-4302-0188-5_10 . ISBN 1590596382 。↑ ホワイト、アレクセイ(2009)。「Unobtrusive JavaScript」。JavaScript Programmer's Reference。Wrox Programmer to Programmer。英国チチェスター、ニュージャージー州ホーボーケン: Wiley。311 ページ 。ISBN 9780470344729 . OCLC 421783941 .
さらに読む アメリー、ルーク(2009年3月)。「目立たないJavaScriptの説明」。APC。29 ( 3 )。バウアー・メディア・グループ :89。 Brinzarea-Iamandi, Bogdan; Hendix, Audra; Darie , Cristian ( 2009). 「Unobtrusive JavaScript」。AJAX and PHP: Building Modern Web Applications (第2 版)。英国バーミンガム:Packt Publishing。pp . 205–206。ISBN 9781847197726 OCLC 607690639。 Johansen, Christian (2011). 「非侵入型JavaScript」.テスト駆動型JavaScript開発 . 開発者ライブラリシリーズ. アッパーサドルリバー、ニュージャージー州: Addison-Wesley . pp. 177–196 . ISBN 9780321683915 . OCLC 613420202 . カーニン、ジェニファー(2015)。「目立たないJavaScript」。Sams Teach Yourself Responsive Web Design in 24 Hours。Sams Teach Yourself in 24 Hours。インディアナ州インディアナポリス:Sams。pp . 95–101。ISBN 9780672338380 OCLC 872430002。 スキナー、ジェシー(2007)。『 目立たないAjax』 。O'Reilly Short Cuts。カリフォルニア州セバストポル:O'Reilly Media。ISBN 9780596510244 . OCLC 172622153 . スミス、 ピーター(2013)。「目立たないJavaScript」。『プロフェッショナルWebサイトパフォーマンス:フロントエンドとバックエンドの最適化 』。インディアナ州インディアナポリス:Wiley。p. 120。ISBN 9781118487525 . OCLC 809561237 . 「目立たないJavaScriptの原則」 www.w3.org . W3C Web 標準カリキュラム。2011年。 2021年7月5日 取得 。Vora, Pawan (2009). 「Unobtrusive JavaScript」 . Web Application Design Patterns . アムステルダム; ロンドン: Morgan Kaufmann Publishers . pp. 347–349 . ISBN 9780123742650 . OCLC 255902089 .