这不是“编码问题”,而更像是“它是如何工作的?”。
让我们考虑一下我想在第 2 页上显示一个沉重的图片。如果我在第 1 页上预加载这张图片(没有显示)并在它完全加载之前单击第 2 页链接......会发生什么?
=> 页面 2 加载并且重图片的结尾也被加载,或者缓存不适用于部分加载的文件?
谢谢你的解释,
甲烷
这不是“编码问题”,而更像是“它是如何工作的?”。
让我们考虑一下我想在第 2 页上显示一个沉重的图片。如果我在第 1 页上预加载这张图片(没有显示)并在它完全加载之前单击第 2 页链接......会发生什么?
=> 页面 2 加载并且重图片的结尾也被加载,或者缓存不适用于部分加载的文件?
谢谢你的解释,
甲烷
从理论上讲,部分响应很可能被缓存,无论是通过网络浏览器还是通过最终用户和网络服务器之间的代理服务器。http 支持范围请求,客户端可以请求总资源的特定部分(如图像)。所有大牌网络服务器都支持范围请求。
我真的不知道是否有任何网络浏览器缓存部分下载的资源,尽管这将是一个简单的测试 - 清除网络浏览器缓存,点击加载大型外部对象的网页,中途停止加载。确保网络服务器将以下标头与响应一起发送。
cache-control: max-age=10000
accept-ranges: bytes
现在再次发出请求,但查看请求的 http 标头以查找浏览器请求的部分内容,例如Range: bytes=100000-90000000
. 如果它已经部分缓存了文件,它显然只会要求部分内容。
max-age 标头告诉浏览器文件可以缓存一段时间,accept-ranges 标头告诉浏览器 Web 服务器能够处理部分内容请求。