2011-07-07 29 views
1

私は起動時にJavaScript関数を呼びたくありません。理由は簡単です、それは最初のダウンロードサイズを減らし、ページはより速く現われるでしょう。私は JavaScriptファイルの読み込みを延期するにはどうすればよいですか?

<script type="text/javascript"> 
// Add a script element as a child of the body 
function downloadJSAtOnload() { 
var element = document.createElement("script"); 
element.src = "deferredfunctions.js"; 
document.body.appendChild(element); 
} 

// Check for browser support of event handling capability 
if (window.addEventListener) 
window.addEventListener("load", downloadJSAtOnload, false); 
else if (window.attachEvent) 
window.attachEvent("onload", downloadJSAtOnload); 
else window.onload = downloadJSAtOnload; 
</script> 

...ヘッド部内の次のコードを使用ししかし、それが機能しなかったことを行うには...私を助けてください

+0

関連:http://stackoverflow.com/questions/912711/jquery-to-load-javascript-file-dynamically – deepmax

答えて

1
document.head.appendChild(element) 
4

は通常、それはあなたの最後にスクリプトを置く方が良いでしょうそれを直ちに呼び出すことができます。

スクリプトはページの読み込みをブロックするので、本文の末尾に配置するとページがすぐに読み込まれるようになり、JavaScriptはページが既に用意された状態で読み込まれます。

+0

「body」要素の後ろに別の 'head'要素を追加してスクリプトを前者。それは良い練習ですか? – katspaugh

+0

@katspaugh標準ではないし、ベニフィートがないので、2番目のヘッドを追加しないでください。 – timw4mail

1

<script defer>(HTMLスクリプトタグのdefer属性)を使用できます。

例:

<script src="link/to/yourfile.js" defer></script> 

deferは、HTMLの解析中にファイルをダウンロードし、パーサが完了した後にのみ、それを実行します。遅延スクリプトは、ドキュメントに表示される順序で実行されることも保証されています。

関連する問題