HTML5 Canvas 从浏览器缓存加载图像

亚历杭德罗·康帕

每次使用 HTML5 Canvas 时,我都遇到过这个问题:我上传了一张图片,使用以下代码将其绘制到画布中:

canv = document.getElementById("gc");
canv.width = window.innerWidth;
canv.height = window.innerHeight;
centerX = canv.width / 2;
centerY = canv.height / 2;
ctx = canv.getContext("2d");

image= new Image;
image.src = "images/test.png";
image.onload = function() {
    setInterval(game, 1000 / 500);
};

一切正常,间隔调用一个在画布周围移动图像的函数,控制台日志或任何内容都没有错误。

问题是,当我更改(更新)服务器上的文件“test.png”时,画布会显示该文件的先前版本,直到我使用 chrome 的清除缓存工具为止。我认为图像会在执行时加载,每次都会加载图像,但似乎没有。

如何修复它以使其加载实际的图像文件?

帕特里克·罗伯茨

您可以尝试添加一个 nonce like image.src = "test.png?cache=" + Date.now(),但更好的方法是Cache-Control: no-cache使用XMLHttpRequest发送带有标头的请求fetch

使用伪随机查询字符串的“缓存破坏”之所以不好,是因为它实际上并没有按照名称所暗示的那样做。取而代之的是,它用几个冗余资源来混淆浏览器的缓存,每个资源都有自己独特的查询字符串。这会浪费您的磁盘空间(以及 SSD 的生命周期),因为您再也不想使用缓存的资源。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

使Html5 Canvas及其包含的图像在浏览器中响应

来自分类Dev

从URL加载图像并绘制到HTML5 Canvas

来自分类Dev

手机浏览器中的html5 canvas支持

来自分类Dev

如何检查我的浏览器是否支持HTML5 Canvas混合模式?

来自分类Dev

Webkit浏览器<535(Android native / ios5 Safari)HTML5 Canvas单击错误

来自分类Dev

HTML5 Canvas:更改图像颜色

来自分类Dev

HTML5如何在Canvas中调用图像

来自分类Dev

html5 canvas; 旋转的图像在即闪烁

来自分类Dev

HTML5 Canvas更改图像颜色

来自分类Dev

HTML5 Canvas:向不断绘制的图像添加碰撞

来自分类Dev

如何在html5 canvas中使用gif图像?

来自分类Dev

从文件将图像添加到HTML5 Canvas

来自分类Dev

HTML5 Canvas:向不断绘制的图像添加碰撞

来自分类Dev

HTML5 Canvas中的图像单击事件

来自分类Dev

HTML5 Canvas:更改图像颜色

来自分类Dev

HTML5如何在Canvas中调用图像

来自分类Dev

html5 canvas; 旋转的图像在即闪烁

来自分类Dev

从文件将图像添加到HTML5 Canvas

来自分类Dev

Angular $ templateCache与HTML5浏览器缓存

来自分类Dev

跨浏览器在HTML5 Canvas上放置文本不一致

来自分类Dev

如何将图像从url沿着侧面输入类型文件加载到html5 canvas?

来自分类Dev

HTML5 Canvas:我正在尝试将图像加载到画布

来自分类Dev

如何将图像从url沿着侧面输入类型文件加载到html5 canvas?

来自分类Dev

仅在加载后显示HTML5 Canvas中的数百个微小图像

来自分类Dev

HTML5 canvas javascript

来自分类Dev

HTML5 canvas javascript

来自分类Dev

将背景图像添加到HTML5 Canvas微调器

来自分类Dev

浏览器缓存 HTML

来自分类Dev

防止RAP中drawImage的HTML5 canvas标签的磁盘缓存

Related 相关文章

热门标签

归档