Как получить текущий размер страницы в КБ, используя только javascript?

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

5 ответов


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

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

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


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


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

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

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

/ / Edit

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


существует нестандартное свойство, доступное только для IE-документа.размер файла 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. пример с content-length

чтобы получить размер файла страниц в Интернете, я построил букмарклет 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