使Javascript无阻塞
在以非阻塞方式呈现Javascript时,有哪些不同的方法(效率方面的比较)?。我听说了可以与script标记一起使用的defer属性。还有其他类似的方法吗?如果有,它们比延迟有什么优势 我听说了可以与script标记一起使用的defer属性 是,使脚本(可能)在初始解析/呈现期间不同步运行 还有其他这样的方法吗 是的,如果您在JavaScript中创建一个使Javascript无阻塞,javascript,nonblocking,Javascript,Nonblocking,在以非阻塞方式呈现Javascript时,有哪些不同的方法(效率方面的比较)?。我听说了可以与script标记一起使用的defer属性。还有其他类似的方法吗?如果有,它们比延迟有什么优势 我听说了可以与script标记一起使用的defer属性 是,使脚本(可能)在初始解析/呈现期间不同步运行 还有其他这样的方法吗 是的,如果您在JavaScript中创建一个script元素并将其附加到DOM中,这也不会阻碍页面的解析/呈现。例如: <script> (function() {
script
元素并将其附加到DOM中,这也不会阻碍页面的解析/呈现。例如:
<script>
(function() {
var script = document.createElement('script');
script.src = "/path/to/your/async/script.js";
document.getElementsByTagName('script')[0].parentNode.appendChild(script);
})();
</script>
(功能(){
var script=document.createElement('script');
script.src=“/path/to/your/async/script.js”;
document.getElementsByTagName('script')[0].parentNode.appendChild(script);
})();
…如果有,那么他们比延迟有什么优势
defer
和async
以及一些浏览器。特别是,IE<9可能会无序地执行defer
'd脚本,而defer
'd脚本意味着要按顺序处理(只是在页面解析/呈现过程中没有)。如果您自己添加脚本
元素,您可以挂起它们的加载
事件,然后加载下一个脚本(或者使用像RequireJS这样的东西,它可以为您完成这一任务,甚至更多)。除此之外,不多