JavaScriptの実行時間
Silktideは、ページの読み込み中にブラウザーがスクリプトの実行に費やす時間を測定します。スクリプト処理が重いとページが応答しなくなるため、読み込みが完了したように見えても、数秒間タップやクリックを受け付けないことがあります。
重要な理由
スクリプトのダウンロードは、最初に発生するコストにすぎません。その後、ブラウザーはスクリプトを解析して実行する必要があり、これらの処理はすべて、スクロールや入力、タップを処理するのと同じスレッドで行われます。スクリプトの実行中、ページは反応しなくなります。ボタンは応答せず、ページが読み込みを終えたように見えても、壊れているように感じられます。
ダウンロード時間とは異なり、このコストは訪問者のプロセッサー性能に応じて変わります。開発者のマシンで0.5秒で実行できるスクリプトが、低価格帯のスマートフォンでは数秒かかることがあります。最も安価なデバイスを使う訪問者ほど、長く待つことになります。
修正方法
- の量を減らします。使われていないコードを削除するのが最も直接的な改善策です。未使用のJavaScriptをご覧ください。
- 大きなバンドルを分割し、画面下部の機能や操作に応じて読み込む機能のコードは必要になったときだけ読み込みます。これにより、初回読み込みでは最初の画面に必要な処理だけが実行されます。
- サードパーティ製スクリプトを監査します。これらは実行時間の大部分を占めることがよくあります。サードパーティ製コードをご覧ください。コストに見合う価値のないものは削除します。
- 本当に負荷の高い計算処理をウェブワーカーに移します。ウェブワーカーは別のスレッドで実行されるため、ページの応答性を維持できます。
Silktideによるテスト方法
- 速度テスト用に設定されたデバイスの種類、接続速度、テスト場所を使用して、実際のブラウザーでページを読み込みます。
- 読み込み中に各スクリプトが消費した処理時間を測定し、コードの実行(スクリプト評価)と、実行の準備(解析)に分けます。
- 意味のある時間を消費したスクリプトを、ファイルごとの内訳とともに報告します。合計実行時間が短い場合は、個別のスクリプトを一覧表示しません。
- 合計時間に基づいてページを評価します。2秒未満は良好で、約3.5秒以上は低評価となります。
トラブルシューティング
サードパーティ製スクリプトが上位に表示される
アナリティクス、タグマネージャー、広告、チャットウィジェットは、サイト独自のコードよりも多くの実行時間を消費することがよくあります。これらの内部処理を最適化することはできませんが、読み込みを遅らせたり、より軽量な代替手段に置き換えたり、誰も使っていないものを削除したりできます。
自分のマシンではページが速く感じられる
実行時間はプロセッサー性能によって異なります。開発者が使うマシンは、ほとんどの訪問者が使うミッドレンジのスマートフォンより通常数倍高速です。そのため、自分には気にならない処理時間でも、訪問者にとっては数秒かかることがあります。測定値は、使用中のハードウェアではなく、管理されたテスト環境から得られたものです。