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