我的应用程序在这里加载视频:https://core.arc.io/guanzo/VideoOfPeopleWalking.mp4
它使用“Range”请求头从另一个源以16Kb的块加载视频。我的服务器已将响应头中的“Access-Control-Max-Age”设置为10分钟,以防止冗余的OPTIONS请求。
访问链接(它是一个HTML页面),打开网络工具,并观察它需要约1秒才能获取16Kb的块。
现在勾选“禁用缓存”,您应该看到请求完成得更快,并且似乎存在更多的并发请求。这与预期的行为相反,因为每个请求都需要发出并等待OPTIONS请求。
如果启用缓存,请求应该更快,不是吗?这里怎么回事?
以下是GIF形式的重现:https://i.gyazo.com/ec5941829031cdd4dc684a3b53ec6c39.mp4。
注意:块存储在IndexedDB中,因此如果刷新页面,则需要清除IndexedDB以强制所有请求发出。
编辑:过滤掉任何firestore请求,我不确定为什么会发出这些请求,但与我的问题无关。
编辑:新的线索!https://i.gyazo.com/bd887533a42868f748564ccda4451881.png 当勾选“禁用缓存”时,Chrome将重用与“Connection ID”列中看到的相同的TCP连接。理论上,这应该使请求更快。
访问链接(它是一个HTML页面),打开网络工具,并观察它需要约1秒才能获取16Kb的块。
现在勾选“禁用缓存”,您应该看到请求完成得更快,并且似乎存在更多的并发请求。这与预期的行为相反,因为每个请求都需要发出并等待OPTIONS请求。
如果启用缓存,请求应该更快,不是吗?这里怎么回事?
以下是GIF形式的重现:https://i.gyazo.com/ec5941829031cdd4dc684a3b53ec6c39.mp4。
注意:块存储在IndexedDB中,因此如果刷新页面,则需要清除IndexedDB以强制所有请求发出。
编辑:过滤掉任何firestore请求,我不确定为什么会发出这些请求,但与我的问题无关。
编辑:新的线索!https://i.gyazo.com/bd887533a42868f748564ccda4451881.png 当勾选“禁用缓存”时,Chrome将重用与“Connection ID”列中看到的相同的TCP连接。理论上,这应该使请求更快。