8

この質問を参照すると、現在のページ サイズを kb で取得するにはどうすればよいですか。このサイズを使用して、このページの接続速度を知ることができます。

4

5 に答える 5

7

ページのサイズがメガバイト単位でない限り、結果は無意味になります。

これは、接続、リクエストの送信、およびサーバーからの返信の待機に必要な時間が、ページのダウンロードに必要な時間と比較して非常に長く、さらに TCP/IP の開始が遅いためです。

また、キャッシュ、プロキシ、およびブラウザーが行う並列接続の数も考慮する必要があります (たとえば、スクリプトとスタイルのダウンロードを優先して、ページのダウンロード時間が遅く見える場合があります)。

于 2009-05-20T21:27:59.877 に答える
6

htmlだけを意味する場合は、jQueryを使用して文字数を取得できます(ほとんどの場合、エンコーディングに応じてバイト)

$(document).ready(
    function()
    {
        var pagebytes = $('html').html().length;
        var kbytes = pagebytes / 1024;
    }
);

これは基本的に、タグ内に含まれる (含む) 文字の数をカウントします。指定されたDoctypeは除外されますが、それは常に静的であるため、doctypeの長さをpagebytesに追加できます。

//編集

最終的にdoctypeのように見えますが、静的ではない可能性があります。しかし、それがなくても、十分に正確なはずです。

于 2009-05-20T21:07:32.570 に答える
5

Ajax を介して既知のデータ ファイルを取得する方が、現在のページを測定するよりも優れたソリューションになると思います。Ajax 呼び出しの開始と完了のタイミングを簡単に計ることができます。

于 2009-05-20T21:01:52.423 に答える
4

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";
  1. テキストのみの例;
  2. 画像のサイズを取得する例;
  3. content-lengthの例
于 2012-04-15T14:29:24.383 に答える