2011-06-18 7 views
0

私はこれについて2つの投稿をしましたが、どういうわけか私はちょっと気にしません。DOM全体の準備が整う前にJSを実行する

<script type="text/javascript" src="somefile.js"></script> 
<script type="text/javascript"> 
func1(); 
</script> 

とはfunc1()がsomefile.jsで定義されている、ブラウザがインラインであることに達したときに実行することが保証されて:

は、だから私たちはこのようなものを持っている場合と結論づけました。

しかし、大量のページ(イメージなどを入れずにhtml)を読み込んでDOMを準備するのに数秒かかる場合はどうしたらいいですか?ロードされ、解析されました)、私はいくつかのコードを実行して、大きなページの残りの部分が読み込まれている間に読み込まれたページの部分を処理しますか?このようなものが

<div id="div1">Some div where content will be inserted by the inline javascript below</div> 
<script type="text/javascript"> notifyPartLoaded("div1"); </script> 

^^存在しています:のようなものを例えば

+0

'somefile.js'またはインラインで' func1'が定義されていますか? – pimvdb

+0

おっと、ちょうど間違いに気づいた。 func1()はsomefile.jsで定義されています – John

答えて

1

私はあなたの質問が何であるかはっきりしていませんが、DOMを確実にするための簡単な方法は、JavaScriptをHTMLの一番下に、つまり</body>タグの横に配置することです。

<!doctype html> 
<html> 
    <head> 
     <title>some title</title> 
     <!-- this script could go toward the bottom too, but it must be before --> 
     <!-- your script if your script relies on it --> 
     <script type="text/javascript" src="somefile.js"></script> 
    </head> 
    <body> 
     <div id="div1">Some div where content will be inserted by the inline javascript below</div> 
     <!-- your HTML --> 
     <!-- your HTML --> 
     <!-- your HTML --> 

     <!-- Place your script last --> 
     <!-- ...though it would be better to have it in a separate file --> 
     <script type="text/javascript"> notifyPartLoaded("div1"); </script> 
    </body> 
</html> 

コードは他の要素の後にあるため、コードが最終的に読み込まれて実行されるときに操作のために存在します。

+0

私はDOM全体が準備ができてから巨大なページに長い時間がかかるまで待つことを避けようとしています。しかし、要素#div1の後ろにインラインスクリプトが続く場合、ブラウザが

関連する問題