Javascript-форум (https://javascript.ru/forum/)
-   jQuery (https://javascript.ru/forum/jquery/)
-   -   Что лучше выбрать defer или $(document).ready (https://javascript.ru/forum/jquery/67889-chto-luchshe-vybrat-defer-ili-%24-document-ready.html)

Aqua77 13.03.2017 15:03

Что лучше выбрать defer или $(document).ready
 
Оба метода гарантируют что скрипт загрузится только после того когда загрузится весь html документ. Какая между ними разница кроме той, что $(document).ready пишется в js файле, а defer в атрибуде?

ksa 13.03.2017 15:54

Цитата:

Сообщение от Aqua77
Какая между ними разница

Она принципиальна...
Действие атрибута распространяется на тег в котором он установлен.

А
$(document).ready();

Просто устанавливает обработчик на событие. Причем когда он выполнится будет определять как раз атрибут его тега... :D

Aqua77 13.03.2017 16:09

Примитивный пример: Есть скрипт с алертом, подключенный вот так <script src="js.js" defer></script> с defer. При обновлении сперва появляется алерт и только потом контент страницы. Почему так ведь defer подразумевает сперва загружать содержимое страницы и только потом скрипт?

ksa 13.03.2017 16:35

Цитата:

Сообщение от Aqua77
ведь defer подразумевает сперва загружать содержимое страницы и только потом скрипт?

С какого перепуга? :blink:
Как написано в букваре
Цитата:

Атрибут defer откладывает выполнение скрипта до тех пор, пока вся страница не будет загружена полностью.
http://htmlbook.ru/html/script/defer

А грузит он все подряд и чем быстрее - тем лучше!

Aqua77 13.03.2017 16:43

Цитата:

Сообщение от ksa (Сообщение 447261)
С какого перепуга? :blink:
Как написано в букваре

http://htmlbook.ru/html/script/defer

А грузит он все подряд и чем быстрее - тем лучше!

Значит что страница уже загрузилась. А вот отрисовка блокируется?

ksa 13.03.2017 16:52

Цитата:

Сообщение от Aqua77
А вот отрисовка блокируется?

Да где ты всего этого нахватался? :D

Не стоит приписывать атрибуту какие-то магические действа. Он отвечает за то, что указано в букваре. И не более того...

Aqua77 13.03.2017 17:04

Цитата:

Сообщение от ksa (Сообщение 447264)
Да где ты всего этого нахватался? :D

Не стоит приписывать атрибуту какие-то магические действа. Он отвечает за то, что указано в букваре. И не более того...

Я хотел сказать, что между тем, как загрузился HTML и страница отрисовалась браузер проходит целый путь.:write:

laimas 13.03.2017 17:20

Aqua77,
почитать это и успокоиться. )


Часовой пояс GMT +3, время: 01:44.