Как получить размер HTML-документа с помощью JS? - PullRequest
3 голосов
/ 01 января 2011

Как узнать фактический размер файла (не в пикселях, в байтах) документа, на котором запущен js-скрипт? Решение должно работать во всех основных браузерах.

Ответы [ 3 ]

3 голосов
/ 01 января 2011

//

function hrefSize(){
    try{
        var O= new XMLHttpRequest;
        O.open("HEAD", document.URL, false);
        O.send(null);
        if(O.status== 200){
            return O.getResponseHeader('Content-Length');
        }
        else return 0;
    }
    catch(er){
        return 0;
    }
}
alert(hrefSize()+' bytes');
1 голос
/ 01 января 2011

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

0 голосов
/ 01 января 2011

Это почти так же близко, как вы можете просмотреть полный источник страницы, используя только JS:

document.documentElement.innerHTML

Вы можете использоватьвозвращенная строка в качестве отправной точки для размера файла.Если вам нужно рассмотреть изображения, их размеры должны быть добавлены вручную путем обхода дерева DOM и проверки каждого элемента img.Это можно легко сделать с помощью jQuery или подобного селектора библиотек:

$("img").each(function() {...});

Если вам нужно дополнительно рассмотреть такие элементы, как Flash и Java, то нет способа сделать это полностью с помощью JS,Вам нужно будет выполнить запрос AJAX и позволить серверу сообщить вам размеры ссылочных файлов.

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