Javascript-форум (https://javascript.ru/forum/)
-   Events/DOM/Window (https://javascript.ru/forum/events/)
-   -   Повторная загрузка спрайта при ошибке подключения к нему (https://javascript.ru/forum/events/81119-povtornaya-zagruzka-sprajjta-pri-oshibke-podklyucheniya-k-nemu.html)

ildarmustafin 03.10.2020 19:49

Как раз грузить до победного мой вариант

рони 03.10.2020 19:57

Цитата:

Сообщение от ildarmustafin
Как раз грузить до победного мой вариант

Цитата:

Сообщение от рони
создать картинку и проверять на ней наличие спрайта?

error
Цитата:

Сообщение от рони
создать картинку и проверять на ней наличие спрайта?

...
load ура добавить правило или запросить размер

рони 03.10.2020 20:46

загрузка картинки до победного
 
ildarmustafin,
в примере 5 первых попыток с ошибкой, повтор загрузки через 1 секунду.
<!DOCTYPE html>

<html>
<head>
  <title>Untitled</title>
  <meta charset="utf-8">
 <style type="text/css">
 .temp {
    height: 32px;
    width: 32px;
    background-position: 0 -34px;
    text-decoration: none;
    background-color: transparent;
    background-image: var(--img, url(images/css_sprites.png));
    margin: 3px;
    display: inline-block;
}

 </style>

</head>

<body>
<div class="temp"></div>
<div class="temp"></div>
<div class="temp"></div>
<div class="temp"></div>
<div class="temp"></div>
<script>
let k = 5;
const loadSrc = (src, delay) => {
const img = new Image();
img.src = k-- > 0 ? "" : src; //img.src = src;
img.decode()
.then(() => {
  document.body.style.setProperty('--img', `url(${src})`);
})
.catch(() => {
console.log(k)
setTimeout(() => loadSrc(src, delay), delay)
})
}
loadSrc(\'https://javascript.ru/forum/images/smilies/smile.gif\', 1000)
  </script>
</body>
</html>

ildarmustafin 04.10.2020 15:40

Все четко работает. Благодарю Вас. + в карму


Часовой пояс GMT +3, время: 21:28.