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