是否可以检查HTML页面中加载了多少字节?

是否可以检查HTML Page加载了多少字节? 如果没有,任何人都可以解释这些percentage preloader如何在html页面中工作,或者它们只是用户的错觉?

我想为我的网站创建pre-loader ,其function类似于flash pre-loaders 。 但无法理解如何检查网站的每个元素是否已加载或仍在加载。

它返回html页面的大小(以字节为单位)或者您可以获取内容长度标题

 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"; 

无法获取当前页面的加载进度。

但是,如果你通过AJAX加载任何东西,它实际上非常简单。

服务器将(或者至少应该)在响应中包含Content-Length头,您可以读取( xhr.getResponseHeader("Content-Length") )并且您还可以读取到目前为止下载的量( xhr.responseText.length )并计算一个百分比。

但是,上述内容在某些旧版浏览器中不起作用 – 他们不喜欢在完全下载之前访问xhr.responseText

在最近的浏览器中,即支持“XMLHttpRequest2”的浏览器中,您可以使用progress事件和相关属性来获取进度。 关于MDN的更多细节 ,但一般的想法是使用evt.loaded / evt.total来获取加载的分数。