愛と勇気と缶ビール

ふしぎとぼくらはなにをしたらよいか

なぜGoogle Closure LibraryがDOMContentLoaded相当を待つための機能を提供してないかっていう話

あれ、これ前に書いたっけ。

http://groups.google.com/group/closure-library-discuss/browse_thread/thread/1beecbb5d6afcb41?pli=1

http://stackoverflow.com/questions/2024018/using-domcontentready-considered-anti-pattern-by-google/2024101#2024101


この議論をするにあたっての前提知識については一々説明しません。

stackoverflowの、best answer?みたいなやつに書かれているGoogle式inline scriptの良い所、悪い所を超訳すると


いいところ

1. DOM elementがユーザに表示されたほぼ直後からJavaScriptによって付加された機能が使えるようになる。全ページのロードを待つ代わりに。

2. いくつかのケースでは、1.の結果としてより速いページのロードとよいユーザエクスペリエンスが得られる。


わるいところ

1. 最悪の場合、プレゼンテーションとビジネスロジックが混じる。一番ましな場合でもプレゼンテーション全体を混ぜこぜにすることになる(この辺何を言ってるのかわからん)。どちらも管理しにくいコードを生み出す。

2. 該当するinline scriptが、外部への依存性(例えば共通ライブラリ)を持っている場合は、結局そのinline scriptが来る前にそれを読み込んでおかないといけないですよねー、で、それをload & evalするために結局ページのどこか途中でブロックしちゃいますよねー。



みたいな。感じですか。