Тег <script>

Выполняемый сценарий
  • Категории: Мета-содержимое, Потоковое содержимое, Фразовое содержимое
  • Контекст:

    Где ожидаются метаданные, или фразовое содержимое.

  • Модель:

    Если есть атрибут src, то содержимое должно быть пустым. Если атрибута src нет, то зависит от значения атрибута type.

Тег <script> (от англ. "script" - сценарий) предназначен для подключения к странице динамических сценариев (скриптов) или блоков данных. По умолчанию предполагается, что сценарий написан на языке JavaScript, который встроен в любой браузер по умолчанию.

При помощи атрибута src мы можем подключить сценарий, расположенный в другом файле. Содержимое тега при этом необходимо оставить пустым. Если атрибута src нет, значит сценарий должен быть написан непосредственно в качестве содержимого элемента.

Количество сценариев на странице ничем не ограничено. Все они будут выполняться в порядке их расположения в документе. Используя атрибуты defer и async, загрузкой сценариев можно управлять.

Атрибуты

  • Глобальные атрибуты
  • src - адрес сценария
  • type - тип встроенного сценария
  • charset - кодировка символов внешнего сценария
  • async - выполнять сценарий параллельно
  • defer - отложить выполнение сценария
  • crossorigin - как следует обрабатывать сценарий, полученный из другого источника (с другого домена)
  • nonce - криптографический одноразовый номер, используемый при проверке политики безопасности контента
  • Встроенный сценарий

    Сценарий может быть написан непосредственно внутри элемента <script>. Это позволит выполнить его на текущей странице:

  • Внешний сценарий

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

  • Асинхронное выполнение

    Как только браузер находит элемент <script>, он блокирует отрисовку страницы и начинает выполнение сценария. Если сценарий занимает много времени, это может привести к недоступности страницы для пользователя. Чтобы это исправить, мы можем добавить сценарию атрибут async. В таком случае он не заблокирует отрисовку страницы. Вместо этого сценарий будет извлекаться параллельно синтаксическому анализу документа и выполнен в момент готовности. При подключении нескольких асинхронных скриптов, мы не можем гарантировать последовательность их выполнения.

  • Отложенное выполнение

    Атрибут desc также позволяет избежать блокирования страницы и извлечь сценарий асинхронно. Только выполнение такого сценария будет отложено до окончания синтаксического анализа документа.

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