Есть ли причины не использовать элементы асинхронного скрипта?

0

Несмотря на продолжение применения атрибута async сценария, продолжаются консультации по размещению скрипта в нижней части документа без атрибута async. Если document.write можно избежать, возможны ли какие-либо ошибки при использовании async?

Например, если я загружаю скрипт, который я переношу в jQuery $(document).ready(...), есть ли вероятность, что при добавлении атрибута async я могу испытывать какие-либо негативные эффекты? Могу ли я надежно указать async для всех таких скриптов?

Теги:
asynchronous

1 ответ

2
Лучший ответ

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

Недавним примером этого, что случилось со мной, была использование библиотеки подсветки синтаксиса Google. Вы включаете библиотеку и затем вызываете prettyPrint() чтобы применить подсветку синтаксиса к соответствующим блокам.

<script src='http://cdnjs.cloudflare.com/ajax/libs/prettify/r298/prettify.js' type='text/javascript'></script>
<script type='text/javascript'>prettyPrint();</script>

Поэтому, если все ваши скрипты завернуты в $(document).ready тогда они, скорее всего, отлично подходят для async. Вопрос, который вы должны задать, заключается в том, можете ли вы объединить все ваши файлы, поэтому вам нужно только сделать один запрос.


Атрибут defer похож на async но ждет, пока HTML не разобратся, а затем запустит скрипты в том же порядке, что и в вашем HTML файле. Это будет работать в вышеуказанной ситуации, если вызов prettyPrint() был внешним, а не встроенным, поскольку я не считаю, что он применим к встроенным скриптам.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню