0

私はjQuery.ready()あなたのページが遅くなるということについてたくさん読んできました。jQuery.ready()私の Web サイトには、多くの Web サイトと同様に内部で実行されているコードがたくさんあります。

</body>
<script>
    jQuery(document).ready(function() {
         // Do some event binding and initialization. 
    });
</script>

このスクリプトをタグの最後に配置しますが、安全のため<body>にコードを内側にラップしました。DOM ready

http://www.webpagetest.org/で自分のページをテストしたところ、domContentLoaded時間が次のようになっていることに気付きました。

domContentLoaded
4.987s - 5.317s (0.330s)

今、私jQuery.ready(function() {});はただになるように削除して実験しました

</body>
<script>
// Do some event binding and initialization. 
</script>

そして、ページをもう一度テストします。これが結果です。

domContentLoaded
3.772s - 3.915s (0.143s)

実行はわずか 0.1 秒にまで下がり~187msます。コードが内部jQuery.readyで実行されないため、実行時間が短縮されると想定するのは正しいでしょうか。これは、パフォーマンスの向上、たとえば知覚されるパフォーマンスの観点から何を意味するのでしょうか。ページの読み込みが速くなったとユーザーは感じますか?

4

2 に答える 2

1

domContentLoaded は $.ready によってトラップされた同じイベントではありませんか? メイン スクリプトが $.ready で実行されているときに webpagetest のタイマーが長くかかっている場合は、その時点でより多くのスレッドがリソースを求めて競合していることを示している可能性があります。そのイベントの前に実行できるセットアップと初期化を許可すると、ドキュメントの準備が整ったときに発生するすべてのセットアップがスムーズに実行されることは理にかなっています...

于 2015-08-01T05:59:07.963 に答える
0

webpagetest の domContentLoaded は jquery の document.ready です

onLoad イベントでコードを起動して、パフォーマンスを向上させます

if("undefined"==typeof(addOnload)){function addOnload(a){if("undefined"!=typeof(window.attachEvent)){return window.attachEvent("onload",a)}else{if(window.addEventListener){return window.addEventListener("load",a,false)}}};}

onload イベントで関数を呼び出す

addOnload(fnName);
于 2015-08-15T11:39:13.257 に答える