Как подключить javascript в html
Перейти к содержимому

Как подключить javascript в html

  • автор:

Как подключить файл js к html

Файл с JS-кодом подключатся к HTML-документу при помощи тега . Ссылка на JS-файл указывается в атрибуте src , например:

05 апреля 2023

Подключить файл script.js к HTML-документу можно и динамически, во время выполнения js-кода:

const script = document.createElement('script'); script.src = 'path/to/script.js'; document.body.append(script); 

Этот код создает элемент script , устанавливает ему атрибут src с путем к файлу script.js и добавляет элемент в конец тела HTML-документа.

Как добавить JavaScript без ожирения сайта

JavaScript — основной инструмент оживления страниц. Но, думая, как вставить Javascript в HTML, важно держать в уме еще одну мысль: как не переборщить.

Анатолий Ализар

Анатолий Ализар

Пишет про разработку в Skillbox Media. Работал главным редактором сайта «Хабрахабр», ведёт корпоративные блоги.

Как добавить JavaScript в HTML

Тег

Любые скрипты вставляются в HTML с помощью тега . Между открывающим и закрывающим тегом вставляем или сам код скрипта, или ссылку на внешний файл.

Код JavaScript в тексте страницы

Чтобы встроить JavaScript в HTML, открываем файл HTML в любом текстовом редакторе, добавляем теги , между ними пишем код программы. Затем сохраняем файл (например, skillbox.htm).

Код

Внешний файл .js

Во многих случаях лучше загружать скрипт из внешнего файла. Такой вариант используется, если мы загружаем какой-то стандартный файл .js из внешнего источника, например библиотеку jQuery. Или если этот «скрипт» на самом деле представляет большое веб-приложение, которое разрабатывается отдельно. Загрузка из внешнего файла всегда лучше, если наша программа JavaScript нужна нескольким веб-страницам.

Для подключения внешнего файла мы опять используем открывающий и закрывающий теги , но между ними указываем не код программы, а путь к файлу с расширением .js, где записан этот код программы.

В нашем примере программу alert(«Привет, Skillbox») мы сохраняем в отдельный файл skill.js, а относительный или абсолютный путь к нему прописываем между тегами с атрибутом src=»».

К сожалению, именно скрипты становятся главной причиной подтормаживаний. Пользователю приходится несколько секунд ждать загрузки страницы, а потом она некоторое время не реагирует на ввод с тачскрина, движения мышью или нажатия с клавиатуры. Когда начинает реагировать, то перегруженная скриптами страница может двигаться по экрану рывками при прокрутке и продолжит подтормаживать, при этом максимально загружая процессор.

В чем причина?

Дело в том, что загрузка скриптов влияет на самую главную метрику производительности: время до появления интерактивности (Time to Interactive). Например, изображения на странице практически не влияют на эту метрику, потому что они не блокируют загрузку элементов интерфейса, а вот скрипты выполняются в основном потоке, то есть находятся на критичном пути рендеринга. Поэтому ни в коем случае нельзя безгранично раздувать количество скриптов на странице. Если пользователь с настольного компьютера или ноутбука еще кое-как загрузит страницу, то пользователь на смартфоне может ее не дождаться. Через десять секунд ожидания он просто закроет страницу.

Оптимизация JavaScript на странице

Бюджет

При добавлении скриптов на страницу нужно помнить, что у каждой страницы есть бюджет по времени и по объему скриптов. Для нормальной загрузки страницы на мобильных устройствах специалисты рекомендуют удерживать бюджет страницы в пределах 200 килобайт сжатых скриптов. Это разархивируется более чем в 1 мегабайт кода, который браузеру нужно разобрать и выполнить.

Порядок исполнения

Браузер отображает страницу сверху вниз, создавая DOM-элементы по мере продвижения по HTML-документу. Если мы помещаем теги в конце, то файлы JavaScript будут открыты одними из последних и не слишком повлияют на критичный путь рендеринга. И наоборот, если разместить тег в начале страницы, то по стандарту браузер обязан сначала выполнить этот скрипт, а уже потом показать оставшуюся часть страницы. Это одна из главных причин подтормаживаний при загрузке страниц.

Поэтому есть смысл переносить в конец страницы ссылки на некритичные скрипты, такие как счетчики, скрипты аналитики и реклама.

Асинхронная загрузка

Более грамотный способ решить проблему с загрузкой «медленных» внешних скриптов — асинхронная загрузка с помощью атрибута async. Если с тегом указан такой атрибут, то браузер не будет ждать загрузки и выполнения этого скрипта, прежде чем показать оставшуюся часть страницы.

Многие разработчики делают типичную ошибку, когда проверяют скорость загрузки страницы и производительность сайта на своем топовом айфоне в быстром городском соединении. Конечно, в офисе у всех сайт загружается идеально, и у начальства тоже. Но у большинства пользователей нет таких условий.

По мере работы с JavaScript вы узнаете много возможностей этого языка программирования. Конечно, есть соблазн применить на практике все знания. Но всегда следует помнить о бюджете и максимальном времени, которое люди на простеньких Android-смартфонах готовы ждать загрузки вашей страницы. Эти знания обязательно придут с опытом.

Читайте также:

  • Как адаптировать сайт под разные разрешения
  • Лучшее из любимого: 13 отличных статей о Computer Science
  • Какой язык программирования учить новичку. Выбираем JavaScript

Как подключить javascript в html

В прошлой статье код javascript непосредственно определялся на веб-странице. Но есть еще один способ подключения кода JavaScript, который представляет вынесение кода во внешние файлы и их подключение с помощью тега

Итак, в прошлой теме мы создали html-страницу index.html , которая находится в каталоге app . Теперь создадим в этом каталоге новый подкаталог. Назовем его js . Он будет предназначен для хранения файлов с кодом javascript. В этом подкаталоге создадим новый текстовый файл, который назовем main.js . Файлы с кодом javascript имеют расширение .js . То есть у нас получится следующая структура проекта в папке app :

Структура программы на JavaScript

Откроем файл main.js в текстовом редакторе и определим в нем следующий код:

document.write("

Первая программа на JavaScript

"); // выводим заголовок document.write("Привет мир!"); // выводим обычный текст

Здесь для добавления на веб-страницу некоторого содержимого применяется метод document.write . Первый вызов метода document.write выводит заголовок , а второй вызов — обычный текст.

Для совместимости с кодировкой страницы index.html для файла с кодом javascript также желательно устанавливать кодировку utf-8. При работе в Visual Studio Code этот редактор автоматически устанавливает кодировку UTF-8.

Теперь подключим этот файл на веб-страницу index.html :

    METANIT.COM     

Чтобы подключить файл с кодом javascript на веб-страницу, применяется также тег , у которого устанавливается атрибут src . Этот атрибут указывает на путь к файлу скрипта. В нашем случае используется относительный путь. Так как веб-страница находится в одной папке с каталогом js, то в качестве пути мы можем написать js/main.js .

Также надо учитывать, что за открывающим тегом script должен обязательно следовать закрывающий

И после открытия файла index.html в браузере отобразится сообщение:

Подключение внешних скриптов javascript

В отличие от определения кода javascript вынесение его во внешние файлы имеет ряд преимуществ:

  • Мы можем повторно использовать один и тот же код на нескольких веб-страницах
  • Внешние файлы javascript бразуер может кэшировать, за счет этого при следующем обращении к странице браузер снижает нагрузка на сервер, а браузеру надо загрузить меньший объем информации
  • Код веб-страницы становится «чище». Он содержит только html-разметку, а код поведения хранится во внешних файлах. В итоге можно отделить работу по созданию кода html-страницы от написания кода javascript

Поэтому, как правило, предпочтительнее использовать код javascript во внешних файлах, а не в прямых вставках на веб-страницу с помощью элемента script.

Асинхронная загрузка и отложенное выполнение

Нередко веб-страницы имеют сложную структуру, какие-то блоки на html-странице, где подключаются файлы javascript, формируются динамически, что может усложнять управление файлами javascript. И для управления загрузкой файла с кодом JavaScript браузер предоставляет два атрибута: async и defer .

Атрибут async гарантирует, что обработка HTML-кода не будет приостановлена, когда браузер встретит элемент . Файл JavaScript загружается асинхронно (отсюда и название атрибута — async ). В этом случае HTML-код продолжает обрабатываться до тех пор, пока не будет загружен соответствующий файл JavaScript. Когда будет загружен файл JavaScript, обработка HTML останавливается, и начинает выполняться загруженный файл JS. После выполнения кода JavaScript продолжается обработка HTML.

Асинхронная загрузка файла JavaScript и атрибут async

Пример применения атрибута async :

Атрибут defer также гарантирует, что обработка HTML-кода не будет приостановлена. С другой стороны, исходный код JavaScript выполняется только после полной обработки HTML-кода. Таким образом, выполнение кода JavaScript откладывается (отсюда и название — defer (в переводе на английский).

Отложенное выполенние файла JavaScript и атрибут defer

Пример применения атрибута defer :

Подключение внешних скриптов

Это задание архивной части. Перейдите по ссылке, чтобы пройти актуальную часть.

Скрипты чаще всего подключают из внешних файлов с расширением .js . Для этого используют тег с атрибутом src , в котором указывается путь к файлу. Например:

Обратите внимание, что тег парный. Если вы подключаете внешние скрипты, то просто ничего не пишите внутри тега.

Внешние скрипты лучше подключать перед закрывающим тегом .

В этом задании вы подключите внешний скрипт, который расположен по адресу: external.js (перейдите по ссылке, чтобы открыть этот файл в браузере).

Перейти к заданию

  • index.html Сплит-режим
  • style.css Сплит-режим

Подключение внешних скриптов

Внешние скрипты

Внешние скрипты так же, как и внешние стили, используются намного чаще встроенных.

В них удобнее вносить изменения, особенно когда один и тот же скрипт подключён к большому количеству страниц.

А ещё внешние ресурсы кешируются браузером, что позволяет ускорить загрузку страниц. А в вебе это важно.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *