Если блок кода Javascript находится не в конце HTML-файла, а использует jQuery $ (document) .ready (function () {...}), замедлит ли это отображение страницы? - PullRequest
3 голосов
/ 21 июля 2010

Говорят, что весь код Javascript должен быть помещен в конец HTML-файла, чтобы сначала отображалось содержимое страницы, чтобы пользователь что-то увидел (чтобы пользователь был удовлетворен, увидев что-то вместо того, чтобы ждать еще 12). секунд, например).

Но для лучшей инкапсуляции HTML и сопоставления кода Javascript, такого как «Карусель изображений», обычно HTML и Javascript помещаются в один файл, поэтому все блоки кода Javascript все смешиваются с кодом HTML на протяжении всего финала HTML-файл.

Но что, если все эти кодовые блоки Javascript используют jQuery $(document).ready(function() { ... }) для выполнения задачи, не будет ли отображение страницы также очень быстрым? Я думаю, что не так быстро, как когда Javascript фактически находится в конце HTML-файла, но достаточно близко, потому что он просто добавляет функцию в готовую очередь событий.

1 Ответ

2 голосов
/ 21 июля 2010

Я думаю, что смысл в том, чтобы поместить js внизу страницы (обычно только внутри закрывающего тега </body>), чтобы содержимое страницы отображалось, пока js загружается , загружается .

Если ваш код jQuery распределен по всему HTML в отдельных вызовах .ready(), то, несмотря ни на что, он не будет работать до полной загрузки <body>.Таким образом, вопрос будет в том, сколько JavaScript у вас есть в HTML?

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

Если для вас действительно важно, чтобы содержимое страницы отображалось как можно быстрее, поместите все сценарии после контента.

Лично я бы не стал смешивать JavaScript с HTML только ради ассоциации.Вы можете получить неожиданные результаты, если начнете удалять / добавлять контент, который содержит скрипт.Я бы предпочел использовать классы и идентификаторы с соответствующими именами, а также множество комментариев к коду.

Также имейте в виду, что эти вызовы .ready() не будут работать, пока не загрузится jQuery, что будет означать, чтоэто должно быть в верхней части страницы или, по крайней мере, до вашего первого звонка.

Итак, снова возвращается к вопросу о том, что для вас важнее.Если вы хотите, чтобы содержимое было видно как можно быстрее, поместите все js внизу.Если вам нужен ваш метод смешивания js и HTML, у вас будет некоторая задержка при отображении страницы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...