1

我想向控制檯寫入給定頁面的大小。請注意,如果頁面被壓縮,我想知道gzip的尺寸和未壓縮的尺寸。我也希望能夠爲任何Ajax請求做到這一點。訪問請求的頁面大小 - Chrome擴展程序

如果有沒有這樣做的方式沒有插件,那將是偉大的。

+0

嘗試['chrome.devtools.network'](https://developer.chrome.com/extensions/devtools.network.html)。 – 2013-04-24 14:31:27

+0

我看着這個,但我不確定我能否訪問HAR數據,除非他們在網絡選項卡上打開devtools?至少這就是我的理解 - 「chrome.devtools。* API模塊僅適用於在」開發人員工具「窗口中加載的頁面。」 http://stackoverflow.com/questions/12689239/why-is-chrome-devtools-network-undefined。 HAR數據正是我想要的,但我需要能夠在沒有開放devtools的情況下完成。我只想在用戶頁面上顯示頁面大小。 – 2013-04-24 15:59:14

+1

您需要創建一個[devtools](https://developer.chrome.com/extensions/devtools.html)擴展名。在你的問題中,你說信息必須記錄到控制檯,所以要求devtools被打開應該不成問題。 – 2013-04-24 16:01:30

回答

-1
var req = new XMLHttpRequest(); 
req.open('GET', document.location, false); 
req.send(null); 
var headers = req.getAllResponseHeaders().toLowerCase(); 
var encoding = (headers.match(/Content-encoding\: (\w*)/i) || []).pop(); 
var unpacked_size = req.responseText.length; 
var packed_size = -1; 
if (['gzip','deflate','lzh','sdch'].indexOf(encoding) !== -1) { 
    packed_size = parseInt((headers.match(/content-length\: (\d*)/i) || []).pop()); 
} 

var result = { 
    encoding: encoding, 
    unpacked_size: unpacked_size, 
    packed_size: packed_size, 
} 
+2

這是通過ajax請求完成的,我不想讓這個額外的請求。 – 2013-04-24 13:42:11

+0

沒有辦法從頁面自己的javascript範圍訪問當前頁面的頁眉數據。而你的問題沒有說明這是一個要求。 – 2013-04-24 15:05:09

+2

問題標題爲「訪問請求的頁面大小 - Chrome擴展程序」。它需要是一個Chrome擴展afaik。 – 2013-04-24 15:54:46