ナビゲーションタイミングAPIを使用して最初のバイトまでの時間を測定する場合、これらの中で正確な測定値はどれですか? なぜ?
var timing = performance.timing;
var timeToFirstByte = timing.responseStart - timing.fetchStart
また
var timeToFirstByte_a = timing.responseStart - timing.navigationStart
ナビゲーションタイミングAPIを使用して最初のバイトまでの時間を測定する場合、これらの中で正確な測定値はどれですか? なぜ?
var timing = performance.timing;
var timeToFirstByte = timing.responseStart - timing.fetchStart
また
var timeToFirstByte_a = timing.responseStart - timing.navigationStart
それは本当にあなたが測定したいものに依存します。
navigationStart から移動する場合は、ブラウザーが以前のコンテンツをアンロードし、新しいタブをセットアップし、(ページがリダイレクト経由で読み込まれた場合) リダイレクトが完了するまでの時間を測定します。これは、サーバーへの新しい接続をセットアップし、サーバーが応答し、最初のバイトを受信するための時間に追加されます。
fetchStart を実行すると、リクエストがサーバーに送信されてから最初のバイトが受信されるまでの時間を測定するだけになります。これには、tcp と ssl のネゴシエーションが含まれます。
接続が確立された後から受信した最初のバイトまでが必要な場合は、おそらくresponseStart - requestStart
. これには、ブラウザーのセットアップ、リダイレクト、または tcp と ssl のネゴシエーションは含まれません。