オリジナルリンクします。https://www.jb51.net/article/107727.htm
1.無効の理由:
文書がロードされていないので、彼は、JSの出席には影響しませんJS
2.拡張子:
1つの伝送およびレンダリングページのjsは「頭の中でページをブロックします。jsがそうではないヘッドに配置されたJSファイルにしようと、ヘッドエンド内で実行する必要のある身体をレンダリングするために始めました。ブラウザメイン構文解析エンジンを遮断今後の回避ヘッド導入JSスクリプトは、DOMの仕事を解析し、DOMをレンダリングし、一般的な原理は前のスタイル、DOM文書、最終面でスクリプトで、実行スクリプトこの順序をレンダリングする際に最初に解決に従ってください。
2「JSは、一般的に本体内部に配置され、一般的にヘッド内に、外部および内部、外部に分け、多くのそのような目的があります。
。ページをブロックしないが(実際にはキャッシュされている)にロードされます
JS DOMで操作することができるB。、DOMはJSランタイムDOMを確実にするためである、この時点で準備ができていることがあります
C。推奨される方法は、ページの下部にある、またはトリガーのJSへのreadyState window.onloadを聴きます。
3「名前空間
グローバル変数はにバインドすることができwindow
ますが、同じグローバル変数を使用している場合は別のJavaScriptファイル、または同じ名前のトップレベルの関数を定義し、葛藤、そして見つけることが困難に名前を付ける原因となります。
競合を低減するための一つの方法は、すべてのグローバル変数によってバインドされたすべての独自の変数や関数です。例えば:
// 唯一的全局变量MYAPP:
var MYAPP = {};
// 其他变量:
MYAPP.name = 'myapp';
MYAPP.version = 1.0; // 其他函数: MYAPP.foo = function () { return 'foo'; };
独自の名前空間にすべてのコードMYAPP
、変数を大幅にグローバルな紛争の可能性を削減します。
3.ソリューション
A。底部に、好ましくは、体内にJS
B。(){}文書導入window.onload =関数によって、または直接の頭部上のコード包装と