асинхронный .js синтаксис загрузки файла

Я заметил, что, кажется, существует несколько немного отличающихся синтаксисов для загрузки js файлы асинхронно, и я задавался вопросом, существует ли какое-либо различие между этими двумя, или если они оба в значительной степени функционируют то же. Я предполагаю, что они работают то же, но просто требуемый для проверки один метод не лучше, чем другой по некоторым причинам.:)

Метод один

(function() {
    var d=document,
    h=d.getElementsByTagName('head')[0],
    s=d.createElement('script');
    s.type='text/javascript';
    s.src='/js/myfile.js';
    h.appendChild(s);
})(); /* note ending parenthesis and curly brace */


Метод Два (Видел это в коде Facebook),

(function() {
    var d=document,
    h=d.getElementsByTagName('head')[0],
    s=d.createElement('script');
    s.type='text/javascript';
    s.async=true;
    s.src='/js/myfile.js';
    h.appendChild(s);
}()); /* note ending parenthesis and curly brace */
16
задан Daniel Vassallo 5 May 2010 в 15:15
поделиться

1 ответ

Единственное отличие, которое я заметил, - это s.async = true; в методе Facebook.

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

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

Источник и дополнительная литература: Whatwg.org HTML 5: элемент сценария

Что касается преимуществ, вы можете проверить, что Google сказал в декабре прошлого года:

16
ответ дан 30 November 2019 в 22:43
поделиться
Другие вопросы по тегам:

Похожие вопросы: