Скрипты: async, defer
В современных сайтах скрипты обычно «тяжелее», чем HTML: они весят больше, дольше обрабатываются.
Когда браузер загружает HTML и доходит до тега <script>...</script>, он не может продолжать строить DOM. Он должен сначала выполнить скрипт. То же самое происходит и с внешними скриптами <script src="..."></script>: браузер должен подождать, пока загрузится скрипт, выполнить его, и только затем обработать остальную страницу.
Это ведёт к двум важным проблемам:
Скрипты не видят DOM-элементы ниже себя, поэтому к ним нельзя добавить обработчики и т.д.
Если вверху страницы объёмный скрипт, он «блокирует» страницу. Пользователи не видят содержимое страницы, пока он не загрузится и не запустится:
https://learn.javascript.ru/script-async-defer
Собственное контекстное меню с использованием JavaScript
https://habr.com/ru/articles/258167/
https://github.com/callmenick/Custom-Context-Menu
Демо: http://codepen.io/SitePoint/pen/MYLoWY
https://habr.com/ru/articles/258167/
https://github.com/callmenick/Custom-Context-Menu
Демо: http://codepen.io/SitePoint/pen/MYLoWY
Малоизвестные возможности JavaScript
- Оператор void
- Скобки при вызове конструкторов необязательны
- Скобки при работе с IIFE можно не использовать
- Конструкция with
- Конструктор Function
и многое другое....
https://habr.com/ru/companies/ruvds/articles/431878/
- Оператор void
- Скобки при вызове конструкторов необязательны
- Скобки при работе с IIFE можно не использовать
- Конструкция with
- Конструктор Function
и многое другое....
https://habr.com/ru/companies/ruvds/articles/431878/