Я можу підтвердити, що підходу до питання достатньо, щоб викликати завантаження та кешування зображень (якщо ви не заборонили браузеру робити це за допомогою заголовків відповідей), принаймні:
- Chrome 74
- Сафарі 12
- Firefox 66
- Край 17
Щоб перевірити це, я зробив невеликий веб-перелік з кількома кінцевими точками, які кожен спить протягом 10 секунд, перш ніж подати фотографію кошеня. Потім я додав дві веб-сторінки, на одній з яких містився <script>тег, у якому кожен з кошенят попередньо завантажений за допомогою preloadImageфункції із запитання, а інший включає всі кошенята на сторінці за допомогою <img>тегів.
У всіх браузерах, що були вище, я виявив, що якщо я спершу завітав на сторінку попереднього завантаження, зачекав деякий час, а потім перейшов на сторінку з <img>тегами, мої кошенята видалися миттєво. Це свідчить про те, що попередній завантажувач успішно завантажив кошенят у кеш у всіх перевірених браузерах.
Ви можете переглянути або випробувати додаток, який я використовував для тестування цього, на https://github.com/ExplodingCabbage/preloadImage-test .
Зокрема, зауважте, що ця методика працює у браузерах вище, навіть якщо кількість зображень, що перебувають у циклі, перевищує кількість паралельних запитів, які браузер готовий зробити за раз, всупереч тому, що пропонує відповідь Робіна . Швидкість, з якою попереднє завантаження ваших зображень, звичайно, буде обмежена тим, скільки паралельних запитів готовий надіслати веб-переглядач, але в кінцевому підсумку він запитає кожну URL-адресу зображення, на яку ви телефонуєте preloadImage().
imgоб'єкт, наприклад, у масиві в батьківській області.