この質問を参照すると、現在のページ サイズを kb で取得するにはどうすればよいですか。このサイズを使用して、このページの接続速度を知ることができます。
5 に答える
ページのサイズがメガバイト単位でない限り、結果は無意味になります。
これは、接続、リクエストの送信、およびサーバーからの返信の待機に必要な時間が、ページのダウンロードに必要な時間と比較して非常に長く、さらに TCP/IP の開始が遅いためです。
また、キャッシュ、プロキシ、およびブラウザーが行う並列接続の数も考慮する必要があります (たとえば、スクリプトとスタイルのダウンロードを優先して、ページのダウンロード時間が遅く見える場合があります)。
htmlだけを意味する場合は、jQueryを使用して文字数を取得できます(ほとんどの場合、エンコーディングに応じてバイト)
$(document).ready(
function()
{
var pagebytes = $('html').html().length;
var kbytes = pagebytes / 1024;
}
);
これは基本的に、タグ内に含まれる (含む) 文字の数をカウントします。指定されたDoctypeは除外されますが、それは常に静的であるため、doctypeの長さをpagebytesに追加できます。
//編集
最終的にdoctypeのように見えますが、静的ではない可能性があります。しかし、それがなくても、十分に正確なはずです。
Ajax を介して既知のデータ ファイルを取得する方が、現在のページを測定するよりも優れたソリューションになると思います。Ajax 呼び出しの開始と完了のタイミングを簡単に計ることができます。
IEでのみ使用できる非標準のプロパティがあります--document.fileSizeMDNMSNDS 。HTMLページのサイズをバイト単位で返します。
content-length
または、ヘッダーを取得できます
var request = new XMLHttpRequest();
request.open('GET', document.location, false);
request.send();
var size = request.getAllResponseHeaders().toLowerCase().match(/content-length: \d+/);
document.getElementById("size").innerHTML = size + " bytes";