Предварительная загрузка изображений работает в Safari, но не в Chrome - PullRequest
0 голосов
/ 16 мая 2018

Моя цель - предварительно загрузить изображения, которые находятся в массиве, а затем мгновенно отобразить случайное изображение одним нажатием кнопки.При следующем щелчке должно появиться другое случайное изображение из массива.Вот код:

let randomImage = new Array(24);

function preload() {
    for (let x = 1; x < randomImage.length; x++) {
    randomImage[x] = "img/img" + x + ".jpg";
    }
    for (let i = 1; i < randomImage.length; ++i) {
    let img = new Image();
    img.src = randomImage[i];
    }
}

function randomImg() {
    let random = Math.floor(Math.random() * randomImage.length);
    if (random === 0) {
    return randomImage[1];
    }

document.getElementById("img_placeholder").src = randomImage[random];

}

Что это должно сделать, это сначала предварительно загрузить массив изображениями (функция preload ()).

Затем функция randomImg () вызывается каждый разкнопка нажата.Это хорошо работает для сафари, но в chrome он сначала правильно загружает все изображения, но затем, когда я нажимаю кнопку, чтобы перейти к следующему случайному изображению, он посылает еще один запрос get, чтобы загрузить изображение снова, вместо этого в safari, где он просто принимает загруженныйimage.

Что я здесь не так делаю?

Вот представление при загрузке страницы, изображения также загружаются: enter image description here

Но когда нажата кнопка переключения на случайное изображение, изображения по-прежнему загружаются снова: enter image description here

Это только с Chrome, оно отлично работает с Firefox и Safari.

...