我有一个包含大约 20 张图像的轮播。加载所有图像后,应将它们缓存,然后在 iframe 中再次加载。浏览器显示图像已缓存。
问题是 iframe 中的相同图像 URL 再次下载它们,而不是从缓存加载。 有没有办法从缓存加载这些图像?
最佳答案
浏览器的缓存不是特定于窗口的。
如果您的图片被重新请求,那是因为以下情况之一是正确的:
- (不太可能) URL 不同(即使您的服务器最终返回相同的图像),或者
- (可能) 与图像一起发送回的缓存 header 等告诉浏览器不要缓存它们,或者
- 浏览器决定不缓存它们,即使出于某种原因允许(例如,其缓存启发式表示“不缓存这些”)。
要解决此问题,请确保图像的 URL 计算为相同的完整 URL(它们可能已经这样做,但请仔细检查),并且服务器发送回足够的缓存信息以允许浏览器缓存图像。
关于javascript - 从 iframe 访问父窗口缓存,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51261248/