Google ошибается насчет отсрочки?Html

Программисты Html
Ответить
Anonymous
 Google ошибается насчет отсрочки?

Сообщение Anonymous »

В этом сообщении:

Почему Google использует термин «JavaScript, блокирующий рендеринг»?

@jaffa-the-cake спрашивает в комментарии кому-то:

"Какую часть документации вы считаете неверной?"

Давайте возьмем, к примеру, эту документацию:

https://developers.google.com/speed/doc ... BlockingJS

А теперь давайте возьмем, к примеру, то, что они говорят об «отсрочке»:


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


Обратите внимание, что статья посвящена «Удалению JavaScript, блокирующего рендеринг», поэтому слово «может» означает, что вы МОЖЕТЕ использовать отсрочку.

При использовании «defer» в теге сценария вы НЕ будете откладывать «выполнение до тех пор, пока не завершится загрузка первоначального рендеринга страницы». Это может быть так, но не обязательно.

"Отложить" отложит выполнение до тех пор, пока исходный HTML-код не окажется в DOM, но это нечто иное, чем "рендеринг". Выполнение произойдет после того, как (предыдущий) html окажется в DOM и до DOMContentLoaded, но это не означает: «рендеринг страницы завершил загрузку». Было бы правильно, если бы они использовали термин «парсинг HTML страницы завершен».

Пример, подтверждающий изложенную выше теорию:

INDEX.HTML

Код: Выделить всё




Test


Some HTML line and this is above the fold



SCRIPT.JS (из кеша!)

Код: Выделить всё

// Synchronous delay of 5 seconds
var timeWhile = new Date().getTime();
while( new Date().getTime() - timeWhile < 5000 );
Если браузер возьмет скрипт.js из кеша, то «Некоторая строка HTML, и это находится над сгибом» будет показано ПОСЛЕ 5 секунд! Это означает, что первоначальный рендеринг страницы еще НЕ завершил загрузку (при использовании отсрочки). По моему мнению, это означает, что документация неверна.

p.s. Без script.js из кеша у браузера будет время завершить рендеринг предыдущего HTML. Сначала необходимо загрузить файл script.js, что дает браузеру дополнительное время. При кэшировании между «завершением синтаксического анализа html» и началом «выполнения javascript» проходит меньше времени, поэтому есть вероятность, что «выполнение javascript» уже начнется до «завершения рендеринга предыдущего html». Таким образом, в случае увеличения скорости вы можете даже рассмотреть возможность отключения кеширования в этом примере, чтобы рендеринг предыдущего HTML-кода был быстрее.

У меня есть гораздо больше тестов/примеров, которые доказывают, что другие части в другой документации (о рендеринге) Google неверны (по моему мнению), но я проясню это в этом посте, используя 1 пример.

Если вы не согласны со мной, пожалуйста, не указывайте только отрицательную репутацию, но хотя бы прокомментируйте, почему вы считаете это неправильным и какой тест вы сделали, чтобы это подтвердить. Я уже пытаюсь убедить некоторых людей в Google, что они, по моему мнению, неправы, но их это как бы обижает. Конечно, я бы не сказал, что они неправильны, если бы я не потратил на это много времени/энергии/тестирования и если бы я был в этом абсолютно уверен. До сих пор мне говорят: «считай, что недоразумение может быть твоим», поэтому я чувствую себя маленьким мальчиком, «бьющимся» с большой стеной. Для меня это не совсем правильно, но я вижу так много людей вокруг меня (они уже много лет работают в сфере ИТ), которые борются с предметным рендерингом, и я могу это понять, потому что документация по этому поводу очень запутанная. Именно поэтому я углубился в это, потому что это также становилось слишком запутанным для меня, поэтому я хотел понять это лучше.
И если я не прав, просто убедите меня аргументами, и я первый, кто скажет, что я был неправ.

Подробнее здесь: https://stackoverflow.com/questions/470 ... bout-defer
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Html»