Полезная информация

Mozilla Россия — свежие версии программ Mozilla, а также масса полезной информации по каждому продукту.

№126-12-2012 16:44:51

Magneto
Участник
 
Группа: Members
Зарегистрирован: 25-07-2010
Сообщений: 24
UA: Chrome 23.0

Получить размер загруженной страницы

Подскажите как можно получить размер загруженной страницы из расширения.

Отредактировано Magneto (26-12-2012 17:39:20)

Отсутствует

 

№226-12-2012 18:37:03

littleleshy
________
 
Группа: Members
Откуда: Москва
Зарегистрирован: 13-12-2008
Сообщений: 2504
UA: Firefox 20.0

Re: Получить размер загруженной страницы

Magneto
Мой ответ будет идентичен этому.

Отсутствует

 

№327-12-2012 14:44:52

Magneto
Участник
 
Группа: Members
Зарегистрирован: 25-07-2010
Сообщений: 24
UA: Chrome 23.0

Re: Получить размер загруженной страницы

Для того чтоб получить вес загруженной страницы (это чистый html, без css, image и прочего) можно воспользоваться следующим скриптом:

Выделить код

Код:

function getPageSize() {
    var pageSize = null,
        cacheService = Components.classes["@mozilla.org/network/cache-service;1"].getService(Components.interfaces.nsICacheService),
        httpCacheSession = cacheService.createSession("HTTP", 0, true);

    httpCacheSession.doomEntriesIfExpired = false;

    var cacheEntryDescriptor = httpCacheSession.openCacheEntry(content.document.location.toString().replace(/#.*$/, ""), Components.interfaces.nsICache.ACCESS_READ, false);

    if (cacheEntryDescriptor) {
        pageSize = Math.round(cacheEntryDescriptor.dataSize / 1024 * 100) / 100;
    }

    alert('Размер страницы ' + pageSize + 'KB');
}


// Ждем загрузки страницы
if (content.document && content.document.readyState === 'complete') {
    getPageSize();
} else {
    content.addEventListener('load', getPageSize, false);
}

Отсутствует

 

№428-12-2012 00:15:05

littleleshy
________
 
Группа: Members
Откуда: Москва
Зарегистрирован: 13-12-2008
Сообщений: 2504
UA: Firefox 20.0

Re: Получить размер загруженной страницы

Magneto пишет

чистый html

Magneto пишет

function … var … if

o_0, это что за HTML такой?

Отсутствует

 

№528-12-2012 00:20:13

geczu
Участник
 
Группа: Members
Зарегистрирован: 02-11-2012
Сообщений: 244
UA: Firefox 17.0

Re: Получить размер загруженной страницы

Magneto
Видимо он о том, что так можно получить вес самой страницы.

Отсутствует

 

№628-12-2012 00:26:59

littleleshy
________
 
Группа: Members
Откуда: Москва
Зарегистрирован: 13-12-2008
Сообщений: 2504
UA: Firefox 20.0

Re: Получить размер загруженной страницы

geczu пишет

можно получить вес самой страницы

Вес получить можно, но это не

чистый html

.

Отсутствует

 

№728-12-2012 00:29:57

Sid
Участник
 
Группа: Extensions
Зарегистрирован: 10-05-2007
Сообщений: 5676
UA: Firefox 20.0

Re: Получить размер загруженной страницы

littleleshy
Не «получить вес с помощью чистого HTML», а «получить вес чистого HTML».

Отсутствует

 

№828-12-2012 00:39:12

littleleshy
________
 
Группа: Members
Откуда: Москва
Зарегистрирован: 13-12-2008
Сообщений: 2504
UA: Firefox 20.0

Re: Получить размер загруженной страницы

Sid
О, спс, разул глаза. Придирки к посту отменяются.

Отсутствует

 

№926-02-2013 20:15:24

Magneto
Участник
 
Группа: Members
Зарегистрирован: 25-07-2010
Сообщений: 24
UA: Chrome 25.0

Re: Получить размер загруженной страницы

Выделить код

Код:

function getPageSize() {
    var pageSize = null,
        cacheService = Components.classes["@mozilla.org/network/cache-service;1"].getService(Components.interfaces.nsICacheService),
        httpCacheSession = cacheService.createSession("HTTP", 0, true);

    httpCacheSession.doomEntriesIfExpired = false;

    var cacheEntryDescriptor = httpCacheSession.openCacheEntry(content.document.location.toString().replace(/#.*$/, ""), Components.interfaces.nsICache.ACCESS_READ, false);

    if (cacheEntryDescriptor) {
        pageSize = Math.round(cacheEntryDescriptor.dataSize / 1024 * 100) / 100;
    }

    alert('Размер страницы ' + pageSize + 'KB');
}


// Ждем загрузки страницы
if (content.document && content.document.readyState === 'complete') {
    getPageSize();
} else {
    content.addEventListener('load', getPageSize, false);
}

В новых версиях Firefox вышеприведенный код перестал работать, вот ошибка:

Выделить код

Код:

Ошибка: NS_ERROR_NOT_AVAILABLE: Component returned failure code: 0x80040111 (NS_ERROR_NOT_AVAILABLE) [nsICacheSession.openCacheEntry]

Ошибка в этой строке:

Выделить код

Код:

var cacheEntryDescriptor = httpCacheSession.openCacheEntry(content.document.location.toString().replace(/#.*$/, ""), Components.interfaces.nsICache.ACCESS_READ, false);

Подскажите как решить.

Отредактировано Magneto (26-02-2013 20:19:29)

Отсутствует

 

№1027-02-2013 15:13:45

Magneto
Участник
 
Группа: Members
Зарегистрирован: 25-07-2010
Сообщений: 24
UA: Chrome 25.0

Re: Получить размер загруженной страницы

okkamas_knife спасибо.

Выделить код

Код:

var pageSize         = null,
    nsICacheService  = Components.interfaces.nsICacheService,
    ACCESS_READ      = Components.interfaces.nsICache.ACCESS_READ,
    cacheService     = Components.classes["@mozilla.org/network/cache-service;1"].getService(nsICacheService),
    httpCacheSession = cacheService.createSession("HTTP", 0, true);

function openCacheEntry( url, callBack ) {
    var tries = 0,
        checkCacheListener = {
            onCacheEntryAvailable : function ( entry, access, status ) {
                if ( entry || tries === 1 ) {
                    callBack(entry);
                } else {
                    tries++;
                }
            }
        };

    httpCacheSession.asyncOpenCacheEntry( url, ACCESS_READ, checkCacheListener, true );
}

httpCacheSession.doomEntriesIfExpired = false;

openCacheEntry( content.document.location.toString().replace(/#.*$/, ""), function (cacheEntry) {
    if (cacheEntry) {
        pageSize = Math.round(cacheEntry.dataSize / 1024 * 100) / 100;
    }

    alert('Размер страницы ' + pageSize + 'KB');
} );

Отсутствует

 

Board footer

Powered by PunBB
Modified by Mozilla Russia
Copyright © 2004–2020 Mozilla Russia GitHub mark
Язык отображения форума: [Русский] [English]