【发布时间】:2015-10-28 12:33:04
【问题描述】:
我有一个 Three.JS 驱动的 WebGL 示例,位于
http://jsfiddle.net/dja1/7xwrqnen/
material.map = THREE.ImageUtils.loadTexture('/images/earthmap2k.jpg');
如果您使用 Chrome,您会看到当请求大图像时,该图像的缓存被正确设置为“max-age=1296000”。如果您再次“播放”JSFiddle,则不会再次下载图像 - 正如预期的那样。
但是,如果您在 IE 11 中重复,则始终会下载图像。它似乎完全忽略了缓存。
对于一个大文件,这可能是一个真正的问题,因为当您点击一个指向不同页面但显示相同类型动画的超链接时,需要再次下载图像,从而导致糟糕的用户体验。
WebGl 会忽略 IE 11 中的图像缓存吗?解决方法是什么?
提前致谢。 戴夫A
【问题讨论】:
-
您使用的是 r54,它非常古老。请使用更新版本的three.js(您必须手动将其添加到小提琴中)。此外,检查正在发送的标头会发送“缓存控制:无缓存;”所以不使用缓存是完全有效的。较新版本的 three.js 在这里的行为可能会有所不同。
-
谢谢。我已经将 jsfiddle 更新到了 three.js 的最新版本,但没有任何区别。 jsfiddle.net/dja1/c3hcavnj/2 我猜你指的是 HTTP 标头 "Pragma: no-cache" ?如何让 three.js 使用不同的东西?
-
Three.js 不发送标头。提供图像的 Web 服务器发送它们。如果你想要不同的缓存头,你需要配置你的服务器。
标签: javascript caching three.js webgl