执行XMLHttpRequest时,通常会压缩数据。看the Content-Length
header
xhr.getResponseHeader("Content-Length");
为您提供响应正文中的八位字节数,您可以通过调整响应标题来添加标题的近似值。
但是:如何找到实际传输的(压缩)字节数?(在Firefox中,如果只能以特定于浏览器的方式实现这一点。)
以下都应该等于这个
答案 0 :(得分:1)
只要响应是文本(而不是二进制blob),你就可以在SO上找到一些好的起点: Measure string length in bytes
答案 1 :(得分:0)
上面的屏幕截图显示了Network Monitor。 Its code似乎使用了network-monitor.js
文件
实现nsIStreamListener和nsIRequestObserver接口。这在NetworkMonitor功能中用于获取请求的响应主体。
相关代码似乎是
onProgress: function(request, context, progress, progressMax) { this.transferredSize = progress; // Need to forward as well to keep things like Download Manager's progress // bar working properly. this._forwardNotification(Ci.nsIProgressEventSink, "onProgress", arguments); },
与
_onComplete: function NRL__onComplete(aData) { let response = { mimeType: "", text: aData || "", }; response.size = response.text.length; response.transferredSize = this.transferredSize;
progress
事件是两个接口的一部分。它可能来自xhr,但它来自哪里尚不清楚。