对非阻塞脚本的痴迷

时间:2010-10-01 13:38:59

标签: javascript optimization

因为我发现non-blocking scripts的概念,我已经开始着迷于以这种方式加载我所有的外部脚本。 我甚至砍了Joomla!模板(我知道这是一个不好的做法),以便在index.php文件中加载非阻塞脚本。下面的示例代码。

(function() {
    var script = document.createElement('script'),  head = document.getElementsByTagName('head')[0]; 

    script.type = 'text/javascript'; 
    script.src = "http://www.mywebsite.com/scripts/one_of_many.js"
    head.appendChild(script);
})();

我的问题是:

何时加载非阻塞脚本是好还是坏?

使用非阻塞脚本的限制是什么?

2 个答案:

答案 0 :(得分:1)

您用于非阻塞脚本(附加脚本DOM元素)的技术不会在所有浏览器上保留脚本执行顺序,仅限于Firefox和Opera。

如果您不关心执行顺序,那么您可以安全地使用它。

如果没有,您可以将其与其他一些技术结合使用,例如IE的脚本延迟,iframe中的脚本或XHR。

有关Even Faster Websites

的更多详情

答案 1 :(得分:0)

如果您正在加载大量文件,即使是非阻塞文件,只需将它们放在</body>标记之前的html即可实现,因为浏览器会在页面上找到它们时执行操作,如果你加载了不少。

这样做很有好处,但最好还是看看合并文件和缩小/阻碍,以便将更多的时间剃掉。另一个显而易见的事情是确保你正在GZipping JS到浏览器。