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

tgw*_*tdt 3 html javascript memory performance caching

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

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'); });
Run Code Online (Sandbox Code Playgroud)

我想要做的是使用 javascript 加载元素数组image(),然后在幻灯片中显示它们。

Pat*_*rts 5

以下是如何将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);
Run Code Online (Sandbox Code Playgroud)
<img src="https://www.w3schools.com/howto/img_fjords.jpg"/>
Run Code Online (Sandbox Code Playgroud)