我有一个循环三遍的动画 GIF。我注意到在 Firefox 和 Chrome 中(没有检查过其他的)我可以查看一次 GIF,然后如果我重新加载页面,缓存的 GIF 根本就没有动画。
有针对这个的解决方法吗?我可以更改有关动画 GIF 的某些内容以防止这种情况发生吗?
它是一个超级丑陋的解决方案,但如果你调用内联图像,你可以使用它,虽然不漂亮但它有效!
<img src="filename.gif?rand=<?=rand(1,1000);?>" alt="" />
希望有帮助
在这种情况下,我选择的解决方案是在图形名称的末尾附加一个 GET 变量,以防止在页面刷新时从缓存中重新加载图形。
var myImg = new Image();
myImg.src = "image.gif?rnd=" + Math.random();
Jade O'Connor 的解决方案有效,但正如所说,这是一个丑陋的解决方案。因为每次访问页面时,图像都会从服务器下载。这会导致大图像的带宽问题。这也增加了页面加载时间,因此不利于慢速连接。
有更好的解决方案吗?
我想出了这样的事情:
我在循环“永远”模式下重新生成了动画 gif。在我的 gif 中,有 20 帧,每帧显示 150 毫秒。这样循环的一步持续 3 秒。我还创建了动画最后一帧的 jpeg 版本。
当页面加载时,我使用 window.setTimeout() 方法在 3 秒后将 gif 替换为 jpeg。因为,当循环的第一步完成时,我希望最后一帧静止。但是有时间问题。当显示最后一帧时,动画重新开始,然后我可以用 jpeg 替换 gif。有没有办法检测动画是完成还是重新启动?
你能指出我们有问题的GIF吗?您使用的所有 GIF 都会出现这种情况吗?都是用同一个应用程序制作的吗?
无论如何,只是不要缓存和瞧,解决了。但我认为您应该使用另一个应用程序来创建您的 GIF 并查看它是否正常工作。