Как получить текущий размер страницы в КБ, используя только JavaScript? - PullRequest
8 голосов
/ 21 мая 2009

Ссылаясь на этот вопрос , как я могу получить текущий размер страницы в килобайтах, этот размер я буду использовать, чтобы узнать скорость соединения для этой страницы.

Ответы [ 5 ]

7 голосов
/ 21 мая 2009

Если ваша страница не имеет размера в мегабайтах, результат будет бессмысленным.

Это связано с тем, что время, необходимое для подключения, отправки запроса и ожидания отправки сервером ответа, довольно большое по сравнению со временем, необходимым для загрузки страницы, и в дополнение к этому TCP / IP имеет медленный старт .

Вы также должны учитывать кэши, прокси-серверы и количество параллельных подключений, которые будет выполнять браузер (например, может расставить приоритеты при загрузке сценариев и стилей, что сделает время загрузки страницы медленным).

5 голосов
/ 21 мая 2009

если вы имеете в виду только html, вы можете использовать jQuery для получения количества символов (в большинстве случаев байтов, в зависимости от кодировки)

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

это в основном подсчитывает количество символов, содержащихся в (включая) тег. это исключит любой указанный тип Doctype, но так как он всегда будет статическим, вы можете добавить длину doctype в байты страницы.

// Edit

похоже, что тип документа в конце может быть не статичным. но без этого он все еще должен быть достаточно точным.

5 голосов
/ 21 мая 2009

Я думаю, что захват известного файла данных через Ajax был бы лучшим решением, чем измерение текущей страницы. Проще определить время начала и завершения вызова Ajax.

4 голосов
/ 15 апреля 2012

Нестандартное свойство доступно только для IE - document.fileSize MDN MSDN Возвращает размер 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. Пример с длиной содержимого
1 голос
/ 13 мая 2013

Чтобы получить размер файла страниц в Интернете, я создал букмарклет javascript, чтобы добиться цели. Он предупреждает размер страницы, на которой вы находитесь в КБ. Не уверен, если это может помочь со скоростью соединения, хотя.

Измените предупреждение на приглашение, если вы хотите скопировать размер файла.

Вот код букмарклета для предупреждения.

<a href="javascript:a=document.getElementsByTagName('HTML')[0].outerHTML;b=a.length/1024;c=Math.round(b);alert(c+' kb');">Doc Size</a>

Вот код букмарклета для приглашения.

<a href="javascript:a=document.getElementsByTagName('HTML')[0].outerHTML;b=a.length/1024;c=Math.round(b);prompt('Page Size',c+' kb');">Doc Size</a>

См. Это в действии на http://bookmarklets.to.g0.to/filesize.php

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...