スクリプト ローダーは、デフォルトで、少なくとも意図/定義によって、ページの DOM 対応および onload イベントからスクリプトの読み込みをブロック解除するように機能します。
したがって、率直な答えは、NO です。LABjs は、DOM の準備が整うまでスクリプトの実行をブロックしません。LABjs によってロードされた一部のスクリプトは、DOM の準備が整う前に実行される場合がありますが、他のスクリプトは DOM の準備が整った後に実行される場合があります。
コードが DOM を待機する必要がある場合が本当にある場合は、jQuery などのフレームワークを使用し、組み込みの DOM 対応ラッパー $(document).ready(...)
を使用して、そのロジックを DOM 対応セーフにする必要があります。
しかし、人々が DOM の準備ができるまで待つ必要があると考える多くのケースがありますが、実際にはそうではありません:
ほとんどの人は、DOM 対応を「すべてのスクリプトの読み込みが完了した」と混同しています。すべてのスクリプトがロードされていることを確認する必要があるため、単に DOM 対応を待っているのであれば、これは誤った誤った仮定です。代わりに、スクリプト ローダーの機能を使用して、すべてのスクリプトがいつ読み込まれるかを判断し、DOM の読み込みに関係なく、適切なタイミングでスクリプトを実行します。LABjs を使用すると、すべてのスクリプトを 1 つの $LAB チェーンに配置し、チェーンの最後に finalを配置するだけで済みます。すべてのスクリプトがロードされるまで.wait()
、そのコールバック内のコードが実行されないことを保証できます。.wait()
そして走る。
ほとんどの人は、イベント ハンドラーのアタッチや Ajax リクエストの起動などを行うには、DOM 対応になるまで待つ必要があると考えています。これも間違った仮定です。コードがイベント ハンドラーをアタッチする要素を単に DOM にクエリする場合、または DOM をまったく操作せずに Ajax 呼び出しを行う場合は、ロジックを DOM 対応のラッパーでラップしないでください。
反対に、多くの人は、コードが body タグの最後で実行される場合、DOM 対応を待つ必要はないと考えています。違う。コードが指定されている場所に関係なく、DOM 対応は DOM 対応です。
一般に、DOM 対応のラッパーでコードをラップする必要があるのは、DOM を変更する場合のみです。それ以外の場合は、DOM 対応でコードが実行されるまで待たないでください。ラップされているものとラップされていないものについて賢くしてください。