0

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 つのスクリプトを頭に入れました。

改善のアイデアや考えを教えてください!

ありがとう!

4

1 に答える 1

0

私があなたの質問を正しく理解していれば、

ドキュメントの準備ができたときに(別名$(document).ready())javascriptを実行すると、ページの読み込みが遅くなるだけです。ブラウザはjavascriptを読み取るとすぐに実行し、最初にjqueryを配置し<link href...>、次に必要なすべてのjavascriptコードを配置します。

javascript がその下にある html を使用しようとすると、動作しないことに注意してください (ドキュメントがまだロード中、ダウンロード中のため)、正しい位置に配置してください。

于 2012-02-24T11:43:36.273 に答える