Пытаетесь понять спецификации W3C, касающиеся отсрочки и асинхронности?Html

Программисты Html
Ответить
Anonymous
 Пытаетесь понять спецификации W3C, касающиеся отсрочки и асинхронности?

Сообщение Anonymous »

См.: https://www.w3.org/TR/html5/scripting-1 ... pt-async[b]
По этой ссылке вы найдете спецификации W3C о «отсрочке» и «асинхронности». Об этом говорят:


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


Если у вас есть, например, «script.js», то вы можете делать с ним следующие вещи:
  • Загрузка file
  • Извлечение файла из кэша
  • "Чтение" его, потому что перед фактическим выполнением кода должен быть прочитан весь код в файле (иначе подъем невозможен)
  • Выполнение кода
Я не очень хорошо говорю по-английски, поэтому сейчас думаю о слове "выбрано".


Если ни один атрибут не указан, то скрипт выбирается[/b] и выполняется немедленно

Я вижу «выбирается» как:

  • Браузер может получить script.js из кеша
  • Браузер может загрузить script.js


Правильно? Итак, они используют «выгружено», потому что если вы скажете «загружено», тогда это не включает в себя кеширование?

Я хочу обсудить случай без кэширования, поэтому в таком случае:


Если ни один атрибут не присутствует, то скрипт загружается
и выполняется немедленно

Могу ли я сказать это? И если да, то у меня есть последний вопрос по этому поводу.

Современные браузеры оснащены сканерами предварительной загрузки, которые заранее сканируют файлы JavaScript для загрузки. Поэтому я подумал: возможно, сканер предварительной загрузки уже завершит загрузку js-файла до того, как «парсер HTML» достигнет тега сценария. Таким образом, «парсер HTML» может быть занят каким-то другим HTML-кодом, предшествующим тегу сценария, в то время как браузер уже завершает загрузку.

Это верно до сих пор? Я сам не уверен. Но если это правда, то я не понимаю спецификации W3C, потому что они говорят (если все вышеизложенное верно):


Если ни один из атрибутов отсутствует, то скрипт загружается и выполняется немедленно



Значит, «выполняется немедленно» после загрузки? Если вы находитесь в синхронной среде, то весь HTML-код перед этим тегом сценария должен находиться в DOM перед выполнением JavaScript.

Итак, если все это правда, то я не понимаю, почему они могут сказать: «выполнено немедленно»? Или сканер предварительной загрузки является чем-то неофициальным, поэтому W3C игнорирует это в своей документации. Значит, в этом случае спецификация W3C на самом деле верна только для старых браузеров?
Или может ли браузер получить скрипт из сканера предварительной загрузки, и это произойдет в тот момент, когда «парсер HTML» окажется в теге скрипта, может быть, мне нужно увидеть это вот так?

Или как мне это увидеть?

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

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

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

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

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

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