10

我有一个循环三遍的动画 GIF。我注意到在 Firefox 和 Chrome 中(没有检查过其他的)我可以查看一次 GIF,然后如果我重新加载页面,缓存的 GIF 根本就没有动画。

有针对这个的解决方法吗?我可以更改有关动画 GIF 的某些内容以防止这种情况发生吗?

4

5 回答 5

4

它是一个超级丑陋的解决方案,但如果你调用内联图像,你可以使用它,虽然不漂亮但它有效!

<img src="filename.gif?rand=<?=rand(1,1000);?>" alt="" />

希望有帮助

于 2010-05-28T18:23:45.037 回答
1

在这种情况下,我选择的解决方案是在图形名称的末尾附加一个 GET 变量,以防止在页面刷新时从缓存中重新加载图形。

var myImg = new Image();
myImg.src = "image.gif?rnd=" + Math.random();
于 2010-05-14T03:50:13.690 回答
1

Jade O'Connor 的解决方案有效,但正如所说,这是一个丑陋的解决方案。因为每次访问页面时,图像都会从服务器下载。这会导致大图像的带宽问题。这也增加了页面加载时间,因此不利于慢速连接。

有更好的解决方案吗?

我想出了这样的事情:

我在循环“永远”模式下重新生成了动画 gif。在我的 gif 中,有 20 帧,每帧显示 150 毫秒。这样循环的一步持续 3 秒。我还创建了动画最后一帧的 jpeg 版本。

当页面加载时,我使用 window.setTimeout() 方法在 3 秒后将 gif 替换为 jpeg。因为,当循环的第一步完成时,我希望最后一帧静止。但是有时间问题。当显示最后一帧时,动画重新开始,然后我可以用 jpeg 替换 gif。有没有办法检测动画是完成还是重新启动?

于 2011-01-30T16:21:54.840 回答
0

你能指出我们有问题的GIF吗?您使用的所有 GIF 都会出现这种情况吗?都是用同一个应用程序制作的吗?

无论如何,只是不要缓存和瞧,解决了。但我认为您应该使用另一个应用程序来创建您的 GIF 并查看它是否正常工作。

于 2010-05-14T03:34:33.353 回答
-5

FirefoxCtrl+Shift+R中,您可以使用或强制完全重新加载(重新加载缓存)Ctrl+F5

Chrome中,它是Ctrl+F5Shift+F5

于 2010-05-14T04:03:40.653 回答