@jeruthadam
Я крут

Проблема с v-if. Как определить что картинка уже загружена? Почему происходит повторная загрузка картинки?

Для лейзи лоада картинки я использую такое

mouseEnterHandler () {
      let img = new Image()
      img.src = this.image
      img.onload = () => {
        this.show = true
      }
    }


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

апд Вообщем, с флагом все равно загружается повторно иногда

5c989e3953677230865841.png

апд 2. Нашел из-за чего проблема. Этот элемент у меня с директивой v-if. Наводя на этот элемент с картинкой я его вставляю в дом и убираю обратно. Но по какой-то причине один раз из 50 таких наводов мышкой картинка грузится повтоно.
  • Вопрос задан
  • 417 просмотров
Пригласить эксперта
Ответы на вопрос 1
@heahoh
Full stackoverflow developer
Возможно первый запрос с типом OPTIONS - браузер его отправляет для проверки доступности последующего GET запроса у сервера (т.н. preflight). Возможно вам нужно настроить сервер для отправки 204 и пустого ответа на данные запросы а-ля:
if ($request_method = 'OPTIONS') {
    return 204;
}
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы