我可以在其余页面加载后加载JavaScript代码吗?

时间:2010-07-05 16:21:19

标签: javascript jquery asynchronous

我有一个网页的一部分,它从外部源加载JavaScript文件,然后启动Ajax查询。

当我加载页面时,我看到浏览器说“等待example.com”很多,所以我认为依赖这个外部JavaScript会减慢我的初始页面加载速度。

有没有办法可以异步加载这个外部JavaScript,所以它根本不会减慢我页面其余部分的加载速度?

4 个答案:

答案 0 :(得分:6)

将JS放在最后body标记正上方是一个好习惯。此外,在页面加载后使用加载事件window.onload$(document).ready()来启动JavaScript。

就异步或按需加载JavaScript文件而言,您可以从其他JavaScript函数或事件中注入它。但实际上你做的就是把它放在底部。

查看YSlow Guidelines的前端优化。

答案 1 :(得分:4)

你可以使用jQuery的.getScript()方法,它只是一个AJAX调用的包装器。

http://api.jquery.com/jquery.getscript/

这使请求异步,并为您提供在脚本加载后运行的回调。

答案 2 :(得分:0)

您可以在此处查看我的答案:Dynamic (2 levels) Javascript/CSS Loading

here获取脚本(参见来源)。在底部使用它,您的脚本不会阻止其他资源(如果您有多个资源,它们将以并行跨浏览器的形式下载)。

答案 3 :(得分:0)

我写了一个库来异步加载javascript文件,并在加载时加回调:

https://github.com/ssoroka/sigma

Sigma.async_script_load('http://example.com/underscore/underscore-min.js', '_', function() {
  _([1,2,3,2,3,1]).uniq();
});