javascript - 如何将图像存储在内存中并从内存加载它们而不是缓存?

2024-03-20

我现在正在做的是使用以下函数来预加载图像以缓存。我想知道是否可以从内存中加载它们以获得更快的加载时间。

function preloadImage (done, i) {
    if (!i) { i = 1; }

    var img = new Image();
    img.onloadend = function () {
        if (this.height == 0) { return done(); }
        preloadImage(done, i + 1);
    };
    img.src = "images/" + i;
}

preloadImage(function () { console.log('images loaded'); });

我想做的是加载一个数组image()元素与 JavaScript,然后在幻灯片中显示它们。


以下是如何放置Image对象直接进入 DOM,无需重新加载src预取后:

// wait 2 seconds
setTimeout(() => {
  // preload image
  var image = new Image();

  image.addEventListener('load', function () {
    // place into DOM
    // assert(this === image);
    document.querySelector('img').replaceWith(this);
  });

  image.src = 'https://www.w3schools.com/w3css/img_lights.jpg';
}, 2000);
<img src="https://www.w3schools.com/howto/img_fjords.jpg"/>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

javascript - 如何将图像存储在内存中并从内存加载它们而不是缓存? 的相关文章

随机推荐

  • Coq 中的案例分析证明

    我试图证明关于以下函数的命题 Program Fixpoint division m nat n nat measure m nat match lt nat 0 n with false gt 0 true gt match leq na
  • Steam:使用 PHP 将 SteamID64 转换为 SteamID

    有人如何使用 PHP javascript 将 steamid64 例如 76561198074259974 转换为 steamid STEAM 0 0 56997123 我想在加载屏幕上显示 steamid 但不是 steamid64 看
  • 在 C# 中查找 MP3 长度

    我在用着TagLib http developer novell com wiki index php TagLib Sharp从一些 MP3 中获取 ID3 标签数据 但我似乎无法找到 MP3 的长度 如何在 C 中找到 MP3 的长度
  • Microsoft Teams Tab 应用程序无法访问剪贴板

    I m developing the Microsoft Teams Tab application Tab application is run inside Microsoft Teams through iframe so there
  • 上下文操作模式自定义行为

    在 Android 开发者中菜单指南 http developer android com guide topics ui menus html CAB其中提到 当用户取消选择所有项目 按 后退 按钮或选择操作栏左侧的 完成 操作时 操作模
  • 中继器控件 - 取消特定项目的绑定

    在转发器控件中 是否有一种方法可以在呈现页面之前解除某些项目的绑定 目前 我们有一个绑定到转发器的项目集合 如果该项目不是当前语言的一部分 我们将隐藏该项目 我希望能够对中继器进行计数并返回有效的号码 不包括隐藏项目的计数 是否可以解除特定
  • 创建实时数据仓库

    我正在做一个个人项目 其中包括创建数据仓库 DWH 的完整架构 在本例中 作为 ETL 和 BI 分析工具 我决定使用 Pentaho 它具有许多功能 从允许轻松创建仪表板到完整的数据挖掘流程和 OLAP 多维数据集 我读过数据仓库必须是关
  • 在Java中使用分隔符(与分割相反)连接数组元素的一种快速而简单的方法[重复]

    这个问题在这里已经有答案了 See 相关 NET 问题 https stackoverflow com questions 455438 opposite of string split with separators net 我正在寻找一
  • 为什么 std::vector 这么快(或者我的实现太慢)

    前几天我在玩游戏 试图看看我能在多大程度上优化某些东西 我决定从一个简单的映射开始 它只进行线性搜索来查找元素是否存在 然后尝试对其大部分进行优化 另外 为了进行比较 我使用 std find 对 std map 和 std vector
  • Protractor - 检查单选按钮是否被选中

    所以我遇到了这个问题 我运行量角器 硒测试 有时在测试过程中已经检查了单选按钮 有时则没有 etc div class radio item checked or div class radio item 您可以在其中看到该类有时具有 检查
  • 如何使用 Java 11 HttpClient 和 Jackson 将 JSON 响应映射到 Java 类?

    我是 Java 11 HttpClient 的新手 想尝试一下 我有一个返回 JSON 的简单 GET 请求 我想将 JSON 响应映射到名为的 Java 类Questionnaire 我知道我可以将响应直接转换为字符串或输入流 如下所示
  • 如何在 emacs 中删除引用的字符串?

    我想删除源文件中带引号的字符串 无需标记字符串的开头和终止区域 但只需将点放置在引用字符串内的任意位置并按快捷键即可 我尝试在 elisp 中为此编写一个函数 但我发现该文件 需要从头到点进行解析 以确定该点是否在带引号的字符串内 并找到带
  • 将 Mutations 添加到 Vuex 存储作为 Vue 插件的一部分

    我正在创建一个小型 Vue 插件 允许用户从任何组件内添加 页面通知 我已经成功地实现了类似的东西 this notifications add a message 它有效 但我必须注册我的插件工作所需的突变和操作 作为为我的应用程序设置商
  • Lisp 内部引用工作

    口齿不清是如何做到的quote内部工作 例如 quote 1 1 2 似乎相当于 list 1 list 1 2 这意味着它是如何递归地象征 Head 值的 这个功能是内置的吗 Run equal quote 1 1 2 list 1 li
  • 使用团队成员参数进行 ASP.NET Core 身份授权

    我有一个带有这样的表的应用程序 用户 ASP NET Core 身份 Team UserTeam 多对多联接表 用户可以是多个团队的成员 并且可以在团队中具有不同的角色 例如 用户可能是 TeamA 的团队管理员 但只是 TeamB 的普通
  • Foo.cmd 不会输出进程中的行(在网站上)

    我无法理解 NET 中 ProcessStartInfo 类的内部和外部 我使用此类来执行 FFmpeg 等 exe 程序 没有任何问题 但是当我使用 ProcessStartInfo 启动 cmd 程序时 例如一个简单的 foo cmd
  • XCode11 错误“open(_:options:completionHandler:) 在应用程序扩展中不可用”

    启动后触摸图 v1 0 https apps apple com us app touchgram for imessage id1447336478 ls 1 这是 99 iMessage 应用程序扩展 我尝试更新到 XCode 11 我
  • 以用户身份运行我的程序

    Windows 7 Vista Server 2008 UAC已激活 程序必须具有管理员权限才能进行某些安装操作 之后 我希望我的程序继续以非管理员权限运行 如何在没有管理权限的情况下重新启动它 P S 我的程序自行重新安装 我不想为其分发
  • 附带共享库的 GNU/Linux Firefox 插件(用于无需 root 访问权限的安装)

    该应用程序是一个 Firefox 插件 从 HOME mozilla plugins 加载 因此设置 LD LIBRARY PATH 的包装脚本不是一个简单的选择 据我所知 RPATH 不能引用 HOME 只能是绝对路径 Firefox 尝
  • javascript - 如何将图像存储在内存中并从内存加载它们而不是缓存?

    我现在正在做的是使用以下函数来预加载图像以缓存 我想知道是否可以从内存中加载它们以获得更快的加载时间 function preloadImage done i if i i 1 var img new Image img onloadend