jQueryがページの下部に配置されている場合、jQueryがロードされた後にすべてのJavaScriptを遅らせる最良の方法は何ですか? 私はすでにすべての jQuery インスタンスをピックアップして解決し、jQuery が読み込まれた後にそれらを開始しましたが、で行われたすべての外部参照をピックアップする良い方法を見つける必要があります<script src="file.js"></script>
。
で<head>
:
これにより、ページで見つかったすべての jQuery 関数が取得され、配列にプッシュされます。
<script>
window.q = [];
window.jQuery = function (f) {q.push(f)};
</script>
前</body>
:
本体の直前で、ローカル フォールバックを使用して Google API から jQuery ライブラリを取得し、配列内の各 jQuery 関数を実行します。
<script> window.jQuery || document.write('<script src=\"Scripts/jquery-1.7.1.js\"><\/script>')
// after jQuery loaded
jQuery(function () {
jQuery.each(q, function (index, f) {
f.call(document);
});
});
</script>
質問に...
そのため、最初はコードにたくさんの<script>
タグがありました。それを行う簡単な方法は、以下の例に示すように jQuery.ajax() でそれらを呼び出して「script」と入力することですが、より良いオプションの可能性を探りたいと思います。
jQuery(function () {
jQuery.ajax({
url: "/scripts/somescript.js", // contains myFunction();
cache: true,
dataType: "script",
success: function() {
myFunction();
}
});
});
ノート:
これは、すべてのページで使用されていない珍しいスクリプトに対してのみ行われます。これは、サイト管理者がオンまたはオフにできるウィジェットのコンテキストにあります。そのため、マスターページ (MVC) の jQuery の下に配置した残りの一般的な JS と組み合わせていません。
私は html5boilerplate を使用していくつかの変更を加えてこれをセットアップしたので、実際には Modernizr 2.0 となる 1 つのスクリプトを頭に入れました。
改善のアイデアや考えを教えてください!
ありがとう!