【问题标题】:Store animated gif into localStorage and load it later将动画 gif 存储到 localStorage 并稍后加载
【发布时间】:2020-07-27 16:54:12
【问题描述】:

在 javascript 中,我有一个例程,我将 gif 图像从 URL 保存到 localStorage。在下一页重新加载时,我检查 localStorage 中是否有任何内容,如果是 - 我从 localStorage 显示该 gif,而不是从 URL 加载它。效果很好!

我使用了这个脚本: https://hacks.mozilla.org/2012/02/saving-images-and-files-in-localstorage/

问题是它不适用于动画 gif。问题是(至少我是这么认为的)因为在第一页加载 gif 加载到可能只有 2d 和一个帧的 canvas 元素中,因此保存到 localStorage 的 gif 是静态的而不是动画的。当我从 localStorage 读取并显示它时,它将是静态的。

如何将动画 gif 保存到 localStorage,当我加载它并在页面上显示时它仍然是动画?

【问题讨论】:

  • 为什么不让浏览器缓存这样做呢?您可以将动画 gif 的链接保存到本地存储,而不是实际的 gif...
  • 我试过了,但没用。过了一会儿 gif 不再缓存(真的取决于浏览器、设置、云闪)所以我不能使用它。我需要在网络关闭时显示默认图像,并且只有从 localStorage 加载它才能做到这一点。我知道你的意思 - 我在隐藏的 div 中有 img1 并且在网络关闭时我做了 img2.src = img1.src 但一段时间后它没有工作(这将是最好的解决方案!)。所以我正在尝试保存动画 gif(稍后加载!)。也许这对于某种 blob 东西是可能的,但我不知道。
  • 不可以,可以用css隐藏动图,知道网络不通的时候用js显示;不需要为此使用本地存储。
  • 我试过了,但是当网络中断并且我这样做时 img2.src = hidden_​​image.src 有时浏览器会显示损坏的图像(因为它没有尝试从缓存中加载它 - 隐藏的动画 gif)。由于某种原因它重新加载它,但由于网络关闭,它失败了。
  • 如果网络中断,您的网站将无法正常工作?

标签: javascript local-storage


【解决方案1】:

今晚我梦想着找到一个解决方案。我怎么看不到。我应该加载 image1 (加载网站时 - 意味着互联网已打开),然后当我在 javascript 中检测到没有网络时,我应该在整个屏幕上简单地显示相同的 image1(只是让它可见),我不必做任何分配这不起作用(image2 = image1)。今天将尝试这样做。

【讨论】:

    猜你喜欢
    • 2021-06-27
    • 1970-01-01
    • 2016-09-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-10-24
    • 2016-02-26
    • 1970-01-01
    相关资源
    最近更新 更多