【发布时间】:2011-06-05 15:13:37
【问题描述】:
在这篇 asynchronous .js file loading syntax 的帖子中,有人说,“如果存在 async 属性,那么脚本将在可用时立即异步执行。”
(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 */
我的问题是,“脚本将异步执行”是什么意思?此脚本是否会在与页面中其他 javascript 不同的线程中执行?如果是,我们是否应该担心两个线程中的同步问题?
谢谢。
【问题讨论】:
-
这个脚本一被解析就被执行,所以我不确定仅仅使用
<script>标签和设置异步属性有什么区别。 -
我认为脚本应该由
var fs = document.getElementByTagName('script')[0];fs.parentNode.insertBefore(s, fs);添加。这样,您就可以确定在完成文档的第一次解析之前不会解析脚本。
标签: javascript