すべてのコードを変更する前に、変更する必要があることを確認したいだけです。
ready()関数に含まれるいくつかのインラインjsおよびjquery関数があります。
$(document).ready(function(){ do_something(); ...
これらの関数の多くは、外部のjsドキュメントに含まれている他の関数に依存しています。また、外部スタイルシートで定義されているクラスも使用します。
これで、外部jsとcssの読み込みが延期されるように変更されました(Google https://developers.google.com/speed/docs/best-practices/payload?hl=en#DeferLoadingJSが推奨):
if (window.addEventListener)
window.addEventListener("load", downloadJSAtOnload, false);
else if (window.attachEvent)
window.attachEvent("onload", downloadJSAtOnload);
else window.onload = downloadJSAtOnload;
このようにして、JSの読み込みを開始する前に、すべての画像を含むページが完全にレンダリングされます。
これは正常に機能します。しかし、なぜ、そしてそれが常にそうなるのかどうか疑問に思っています。$(document).ready()はonLoadの前に実行されませんか?$(document).readyの実行時に必要な関数が定義されていないリスクはありませんか?
したがって、すべての$(document).readyを$(document).load()に変更する必要がありますか?または、少なくともそれらのいくつか?しかし、どのonLoad()が最初に実行されますか?外部のjs(ヘッダーで定義されている)またはインラインのjsをロードするものですか?ロードする準備を変更すると何が失われますか?たとえば、ユーザーが要素をクリックしたときにイベントが要素に関連付けられないリスクがありますか?
ところで、他のコードを実行しようとしたときに問題が発生したため、jqueryapiは延期されません。