当您在浏览器中加载页面时,它会显示加载页面时加载的百分比。 与使用 XMLHttpRequest (XHR) 执行 AJAX 请求时相同,它允许您查看加载百分比。
我很好奇这种功能是如何在幕后实现的。客户端如何事先知道它将接收的数据大小?就我个人而言,当我使用 Node.js 创建我的 Web 服务器时,我没有手动实现这样的功能,比如向客户端发送每毫秒间隔加载的百分比等。
这一切是如何运作的?
最佳答案
当浏览器从服务器请求资源时,在大多数情况下,服务器会在下载开始前回复所请求资源的大小。 For Example:
HTTP/1.1 200 OK
Date: Mon, 23 May 2005 22:38:34 GMT
Server: Apache/1.3.3.7 (Unix) (Red-Hat/Linux)
Last-Modified: Wed, 08 Jan 2003 23:11:55 GMT
ETag: "3f80f-1b6-3e1cb03b"
Content-Type: text/html; charset=UTF-8
Content-Length: 131
Accept-Ranges: bytes
Connection: close
<html>
<head>
<title>An Example Page</title>
</head>
<body>
Hello World, this is a very simple HTML document.
</body>
</html>
在上面的服务器响应中,给出了请求资源的长度,这样客户端就知道要读取多少字节了。这允许客户端显示有意义的进度指示器。
关于javascript - 浏览器如何知道加载进度?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24903100/