如何使用javascript以KB为单位获取当前页面大小?

时间:2009-05-20 20:57:56

标签: javascript html widget

参考this question,如何以kb获取当前页面大小,我将使用此大小来了解此页面的连接速度。

5 个答案:

答案 0 :(得分:7)

除非您的页面大小以兆字节为单位,否则结果将毫无意义。

这是因为与下载页面所需的时间相比,连接,发送请求和等待服务器发送回复所需的时间为quite large,此外TCP / IP还有{{3} }。

您还必须考虑浏览器将使用的缓存,代理和并行连接数(例如,可以优先下载脚本和样式,使页面下载时间变得缓慢)。

答案 1 :(得分:5)

我认为通过Ajax获取已知数据文件比测量当前页面更好。更容易计算Ajax调用的开始和完成时间。

答案 2 :(得分:5)

如果你只是指html那么你可以使用jQuery来获取字符数(大多数情况下是字节,取决于编码)

$(document).ready(
    function()
    {
        var pagebytes = $('html').html().length;
        var kbytes = pagebytes / 1024;
    }
);

这基本上计算(包括)标签中包含的字符数。这将排除指定的任何Doctype,但由于这将是静态的,因此您可以将doctype的长度添加到pagebytes。

<强> //修改

看起来像doctype到底可能不是静态的。 但没有它,它仍然应该足够准确。

答案 3 :(得分:4)

有一个非标准属性仅适用于IE - document.fileSize 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";
  1. Example with text only;
  2. Example geting the size of image;
  3. Example with content-length

答案 4 :(得分:1)

为了获取网页上的页面文件大小,我构建了一个javascript书签来完成这项工作。它会以kb的形式提醒您所在页面的大小。不确定它是否可以帮助提高连接速度。

如果要复制文件大小,请将警报更改为提示。

这是警报的书签代码。

<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

中查看此操作