Проверьте, существует ли ресурс в Polymer Framework

Я пытаюсь получить изображения продукта в dom-repeat шаблон, но получаю 404 ошибки для отсутствующих ресурсов, отображаемых в console.log, Я хотел бы очистить журнал с более законными ошибками.

<template is="dom-repeat" items="" index-as="index">
  <lazy-image class="center"
    placeholder="/images/placeholder.png"
    src="https://www.images.com/[[formatImg(item.id)]].png"
    style="width: 24pt; height: 24pt;">
  </lazy-image>       
</template>

...

formatImg(id) {
  if(typeof id != 'null') return id.replace(' ', '%20');
}

Я видел некоторую документацию по on-error событий, но я не вижу прямого пути для их реализации в платформе Polymer.

Есть ли способ справиться с этими GET запросы, чтобы они не были зарегистрированы?

1 ответ

Решение

Короткий ответ:

К сожалению нет.

Это не вещь "не могу сделать это в полимере". На момент написания, обработка 404 с целью предотвращения ошибки консоли вообще невозможна с точки зрения разработчика.

Более длинный ответ:

УБЕДИТЕЛЬНО, у веб-разработчика нет возможности предотвратить регистрацию 404 браузером как ошибку. Если браузеру задают вопрос "достаньте эту вещь, пожалуйста" или даже "эй, вы можете проверить, если это вещь?" и ответ "это не вещь", это зависит от браузера, что он делает с этой информацией. Прямо сейчас то, что он делает (во всяком случае, Chrome - я не исследовал, что делают другие), это "регистрирует ошибку на консоли". Всегда. Не важно что.

Вы можете (как конечный пользователь) отключить это поведение в своем браузере. Но вы НЕ можете (как разработчик) "поймать" ошибку и обработать ее, чтобы браузер был доволен. Даже если вы ДЕЙСТВИТЕЛЬНО обрабатываете ошибку и предоставляете браузеру что-то, что существует вместо ресурса, вызывающего 404, он все равно будет зарегистрирован в консоли как ошибка:

<!-- STILL CAUSES A 404 ERROR TO BE LOGGED TO THE CONSOLE -->
<img id="myimg" src="imagethatdoesntexist.gif" onerror="this.onerror=null;this.src='imagethatexists.gif';">

Источник: метод проб и ошибок && эта тема https://bugs.chromium.org/p/chromium/issues/detail?id=124534

Другие вопросы по тегам