了解しました。私が行うすべてのネクロでクリプトキーパーと呼んでください。しかし、これの真の価値が適切に理解されたとは感じていません。歴史的に、「無邪気なJavaScript」、つまりファイルにリンクされていないインラインHTMLイベントハンドラー属性とスクリプトタグを介してJSをHTMLから除外することは、以下の重要な要素であると主張されています。
- アクセシビリティの懸念
- SEO
- そして漸進的な強化
嘘!(まあ、今はそうなるでしょう)
問題の真実は、技術的に邪魔なJavaScriptを実行しても、上記の3つの項目を引き離すことができるということです。あなたがHTMLコンテンツを動的に構築していない限り、それはその日の大きなSEO禁止事項でした。
しかし、停止して考える...あなたについて!
実際、分離を維持することの大きな利点、主に最も売れ行きの悪い勝利は、常に開発者がそれから得る直接的な利益でした。必要に応じて、同じイベントの同じHTML要素に必要な数だけイベントハンドラーを配置できます。つまり、が付いたタグがclass="some_class"
常に特定の動作を取得するだけでなく、id="bonus_behavior"
div 内にあるときにボーナス動作も取得する場合、1つの許可されたイベントハンドラ内のロジックをいじって、そのために分岐する必要はありません。コンテキストに応じて、ハンドラーを追加することも追加しないこともできます。
読みやすい
別の利点は、読みやすさです。これは、ブラウザツールがIEの排他的なエラーメッセージで構成されていて[object]
、IMOに問題があることを通知する場合、より重大な問題でしたが、それでもなお大きな問題です。ここではCSS、JSはそこにあり、HTMLはそれらとサーバーの両方が出会う場所です。これらすべてが1か所にまとめられているため、フック(ID、クラス、および階層)を利用して、すべてがHTMLへの接続に使用する抽象化のレイヤーを作成することは理にかなっています。
IMO、HTML、CSS、およびJSを分離しておくことができるほど、読むだけでなく、何が起こっているのかを変更して理解することも簡単になります。「dynamic_combo_box」をクラスとして持つ空のdivがあり、データを動的にロードする空想的な選択を行っていることは良い考えです。私はJSとCSSでそれを見つける方法についてリードを持っています。これらの懸念事項でクラスに遭遇した場合、それが何であるか、そしてHTMLでそれを見つける方法について良い考えを持っています。
だらしのないものにするのは簡単すぎる
そしてもちろん、読みやすさは保守性と密接に関連しています。関連するHTMLが存在するスクリプトタグにすべてをダンプすることで直接処理を行うだけの場合は、作業している別のページのHTMLにそのスクリプトをカットアンドペーストするだけで簡単になります。彼らは同様の機能を望んでいます。つまり、期待に反して動作が時間とともに問題となり、1つの必要な例外を処理するためにさらに無意味な分岐を追加する必要がある場合に、最終的に2つの面倒な類似点になる可能性があります別の人はしませんでした。
そのため、これらのHTMLフックに動作をリギングすることで、コードをスマートに再利用できます。別の実装の動作を分岐する必要がある場合は、同じ関数に移動してHTML階層で処理するか、データattで代替動作をトリガーします。これは、特定のタイプのUI要素がどのように機能するかを理解したいと考える人にとっては1つのストップショッピングです。今すぐ実行してください。これが保守性を実現するための最良の方法です。パニックであろうと無関心であろうと、あまり気にならなかった人のために行うのが最も簡単な「だ」のことをしてください。
しかし、2014年はどうですか?
現代の単一ページのアプリケーションでは、これらのステッカーのいくつかは、これまでのように独断的に動けなくなるべきではないかもしれませんが、私だけではないと私が思うとき、私を信じて私を信じてください。それは最終的に仕事を容易にするのでそれでそれで売られました。私は(いいと思いますが)たいていは良い方法で怠けています。アプリ全体の変更を取得するために1か所のみを変更する必要がある場合、1か所のみを確認してバグを特定する必要がある場合、そして何が何であるかを簡単に理解できる場合は、続行し、そのコードを再利用して非常によく似た処理を行う方法
それは、DBやデータレイヤーを分割するのが良いようなものです。それは結局、ボクサーの混血に10分を費やして翌朝の偏執的な匂いチェックを行うのではなく、前夜に5分すべてかけて洗濯をするような時間節約である理由です。
私にとって、それは私が常に控えめなJSだけでなく、スタイル/動作/コンテンツの分離を可能な限り重視する理由の主なポイントであるそれらの利己的な動機ですそれらの懸念を理解できるほど素晴らしく、クールで便利な方法で混乱させます。
誰もがSPAを実行していて、JSなしで実行している人々に注意を払う必要があることをビジネスに納得させようとしています(アクセシビリティは、おそらく、JS生成コンテンツで処理できるようになりました)。次世代のJS開発者はあまり気にしないようですこれについてはIMOですが、まだ勝利はあります。開発者がこのようなものを書いて保守しているのは、主にあなたのためです。そして、本当に、その勝利は常に最も強調されたポイントであるはずですが、それは最終的にあなたと製品に微調整/変更/デバッグが容易になるという幸運な事故によって利益をもたらすため、何らかの理由で決してそうではありませんでした。
それは大丈夫ですか?
ええ、そうですね。コンテストや何かのための使い捨ての使い捨てアプリで。しかし、私はそれを習慣にしていて、それを実際に行うのが難しくないという理由だけで、それでもそれを行います。