动态脚本标记添加是否异步?就像动态地包含来自不同域的一组JavaScript文件一样..
答案 0 :(得分:8)
是的,它是异步的。动态<script>
注入总是导致浏览器通过DOM加载外部资源(例如,就像样式表,图像,闪存),这必须异步发生以避免浏览器锁定。
您是否有机会查看JSONP(“填充JSON”)?它使用动态脚本标记注入。关于“AJAX”的讨论越来越多,而且无法进行同步JSONP(如同步XmlHttpRequest
)的事实经常被忽视。
答案 1 :(得分:0)
动态脚本标记添加是否异步?
是。它被认为是异步的,主要是因为脚本标记没有动态插入时会发生什么。
DOM中存在的完全形成的脚本标记将导致阻止行为,即在该特定资产加载完成之前,页面无法继续加载其他HTML。因此,许多开发人员更喜欢将他们的脚本标记放在</body>
标记之前。这样,标签就会被称为synchronous
。
相比之下,如果动态注入脚本标记,则往往不会出现阻塞行为。我说趋势因为正如你在其他评论中看到的那样,并非所有浏览器都这样做。最好的方法是将动态脚本代码包装在某种document ready
回调中。因此,相比之下,它在技术上是asynchronous
,因为其他资产可以继续与该资产及其功能一起运作。