Разница между тегами `script` и` link as = "script" - PullRequest
0 голосов
/ 29 июня 2018

Дополнительно к стандартному методу загрузки скриптов:

<script src="js/script.js"></script>

Я видел, как люди делают это:

<link href="js/script.js" as="script"> 

Есть ли разница?


Примечание: есть похожее В чем разница между использованием ссылки и тега скрипта для ссылки на источник JavaScript? вопрос, задающий вопрос о <link href="~/Scripts/jquery-1.4.1.js" type="text/javascript" />, который отличается.

1 Ответ

0 голосов
/ 29 июня 2018

Если бы у этого тега link было rel="preload" (или rel="modulepreload"), это указывало бы на запрос предварительной загрузки, который будет предварительно загружать, но не запускать сценарий. Тогда как, конечно, script загружает и запускает скрипт. Но без rel это link недопустимо и не имеет никакого полезного эффекта (по крайней мере, с точки зрения спецификации).

Если вы посмотрите в спецификации link, вы увидите as в списке:

as - потенциальный пункт назначения для запроса предварительной загрузки (для rel="preload" и rel="modulepreload")

После ссылки на атрибут as написано:

Атрибут as указывает потенциальное назначение для запроса предварительной загрузки для ресурса, заданного атрибутом href. Это перечисляемый атрибут. Каждое потенциальное назначение - это ключевое слово для этого атрибута, сопоставляемое состоянию с тем же именем. Атрибут должен быть указан для link элементов, которые имеют атрибут rel, который содержит ключевое слово preload. Это может быть указано для link элементов, которые имеют атрибут rel, который содержит ключевое слово modulepreload; в таких случаях оно должно иметь значение, похожее на сценарий назначения. Для других элементов link указывать его нельзя.

...