8

参考这个问题,我怎样才能得到当前页面大小(以 kb 为单位),这个大小我将用来知道这个页面的连接速度。

4

5 回答 5

7

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

这是因为与下载页面所需的时间相比,连接、发送请求和等待服务器发送回复所需的时间相当长,此外 TCP/IP启动缓慢

您还必须考虑缓存、代理和浏览器将建立的并行连接数(例如,可能优先下载脚本和样式,使页面下载时间看起来很慢)。

于 2009-05-20T21:27:59.877 回答
6

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

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

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

//编辑

看起来文档类型最终可能不是静态的。但没有它,它仍然应该足够准确。

于 2009-05-20T21:07:32.570 回答
5

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

于 2009-05-20T21:01:52.423 回答
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. 仅带文字的示例
  2. 获取图像大小的示例
  3. 内容长度示例
于 2012-04-15T14:29:24.383 回答
2

为了获取网络上页面的文件大小,我构建了一个 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查看它的实际应用

于 2013-05-13T00:11:46.310 回答