我有一个网页的一部分,它从外部源加载JavaScript文件,然后启动Ajax查询。
当我加载页面时,我看到浏览器说“等待example.com”很多,所以我认为依赖这个外部JavaScript会减慢我的初始页面加载速度。
有没有办法可以异步加载这个外部JavaScript,所以它根本不会减慢我页面其余部分的加载速度?
答案 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();
});