Как предварительно загрузить скрипт, используя целостность и перекрестное происхождение - PullRequest
1 голос
/ 27 апреля 2019

Я хочу использовать preload для моих библиотек Jquery и использовать следующий код.

<link rel="preload" href="https://code.jquery.com/jquery-3.4.0.slim.min.js" as="script" integrity="sha256-ZaXnYkHGqIhqTbJ6MB4l9Frs/r7U4jlx7ir8PJYBqbI="
  crossorigin="anonymous">

<script
  src="https://code.jquery.com/jquery-3.4.0.slim.min.js"
  integrity="sha256-ZaXnYkHGqIhqTbJ6MB4l9Frs/r7U4jlx7ir8PJYBqbI="
  crossorigin="anonymous"></script>

Однако это всегда генерирует следующие предупреждения в Chrome.

  1. Предварительная нагрузка для 'https://code.jquery.com/jquery-3.4.0.slim.min.js' найдена, но не используется из-за несоответствия целостности.

  2. Ресурс https://code.jquery.com/jquery-3.4.0.slim.min.js был предварительно загружен с использованием предварительной загрузки ссылки, но не использовался в течение нескольких секунд после события загрузки окна. Пожалуйста, убедитесь, что он имеет соответствующее значение as и предварительно загружен намеренно.

Приведенный ниже код будет работать нормально, если я использую стандартную реализацию.

<link rel="preload" href="https://code.jquery.com/jquery-3.4.0.slim.min.js" as="script">

<script>
  src="https://code.jquery.com/jquery-3.4.0.slim.min.js"
</script>

Итак, мой вопрос: могу ли я предварительно загрузить внешние библиотеки и использовать перекрестное происхождение и целостность (Subresource Integrity)?

Спасибо

1 Ответ

2 голосов
/ 08 мая 2019

Краткий ответ: Вы не можете.

Ресурсы с атрибутом целостности не могут повторно использовать предварительно загруженные ресурсы (на данный момент), а также могут вызывать двойные выборки.Атрибут integrity для элементов ссылок еще не был реализован, и есть открытая спецификация проблема об этом.Это означает, что наличие любых метаданных целостности в настоящее время отбрасывает предварительно загруженные ресурсы.В естественных условиях это также может привести к дублированию запросов, когда вам придется искать компромисс между безопасностью и производительностью.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...