3

グーグルページスピードでウェブサイトをテストしたとき、私は私が取り除くことができないことがわかりましたDefer parsing of JavaScript。私はすべてのJavaScriptコードを削除し、小さなコードだけを残しました

<script defer type="text/javascript" src="jquery.min.js"></script>
<script type="text/javascript">
    $(document).ready(function() {
        $('.test').click(function(){
            $(this).slideDown();
        });
    });
</script>

または、jqueryコードがなくても、jQueryファイルをスタンドアロンとしてロードするだけです。

<script defer type="text/javascript" src="jquery.min.js"></script>

それでもの警告が表示されDefer parsing of JavaScriptます。

4

3 に答える 3

4

私はこのドキュメントページを見つけました、それは述べています:

この手法を使用するには、onloadイベントの前に、ドキュメントで実際に使用されていないすべてのJavaScript関数を最初に特定する必要があります。25を超える呼び出されていない関数を含むファイルの場合は、それらの関数をすべて別の外部JSファイルに移動します。これには、ファイル間の依存関係を回避するためにコードのリファクタリングが必要になる場合があります。(呼び出されていない関数が25個未満のファイルの場合、リファクタリングする価値はありません。)

次に、含むドキュメントの先頭にJavaScriptイベントリスナーを挿入して、onloadイベントの後に外部ファイルを強制的にロードします。これは通常のスクリプト手段のいずれかで実行できますが、非常に単純なスクリプトDOM要素をお勧めします(クロスブラウザーおよび同一ドメインポリシーの問題を回避するため)。これが例です(「deferredfunctions.js」には遅延ロードされる関数が含まれています)

私が理解していること:onloadイベントハンドラーからjQueryを「遅延ロード」する必要があります(その方法の例については、上記のリンクを参照してください)。

于 2012-03-19T21:05:11.543 に答える
2

それはすべきではありません

<script defer='defer' type="text/javascript" src="jquery.min.js"></script>

空のdefere属性を提供する代わりに、defer='defer'を使用します

于 2012-03-19T21:04:54.677 に答える
1

これをスクリプトのasync例に追加するだけです。

<script type="text/javascript" async src="jquery.min.js"></script>
于 2012-11-19T08:13:11.647 に答える