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

我可以在加载其余页面后加载JavaScript代码吗?,javascript,jquery,asynchronous,Javascript,Jquery,Asynchronous,我有一个网页的一部分,从外部源加载JavaScript文件,然后启动Ajax查询 当我加载页面时,我看到浏览器经常说“waiting for example.com”,因此我认为对这个外部JavaScript的依赖正在减缓我最初的页面加载 有没有一种方法可以异步加载此外部JavaScript,这样就不会减慢页面其余部分的加载速度?您可以在这里看到我的答案: 并从中获取脚本(请参阅源代码)。在底部使用它,您的脚本将不会阻塞其他资源(如果您有多个资源,它们将通过并行跨浏览器下载)。您可以使用jQue

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

当我加载页面时,我看到浏览器经常说“waiting for example.com”,因此我认为对这个外部JavaScript的依赖正在减缓我最初的页面加载


有没有一种方法可以异步加载此外部JavaScript,这样就不会减慢页面其余部分的加载速度?

您可以在这里看到我的答案:


并从中获取脚本(请参阅源代码)。在底部使用它,您的脚本将不会阻塞其他资源(如果您有多个资源,它们将通过并行跨浏览器下载)。

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


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

最好将JS放在底部,即结束
正文
标记的正上方。此外,使用load events
window.onload
$(document.ready()
在页面加载后启动JavaScript

至于异步或按需加载JavaScript文件,您可以从另一个JavaScript函数或事件中插入它。但实际上,你所做的和把它放在底部是一样的


查看前端优化的示例。

我编写了一个库,用于在加载javascript文件时使用回调异步加载该文件:


defer
没有得到广泛支持。我删除了我的答案。我真的不喜欢把脚本放在页面底部的建议。我个人将脚本(除了那些调用
document.write()
,我几乎从来没有使用过的脚本)放在
头中,因为它在语义上更正确,并且看起来更干净,与所有
链接
标记组合在一起。此外,在页面加载后立即启动AJAX请求时,“等待”状态将显示出来。所以对用户来说,这不应该有什么不同。@Lèse,这是一个经过验证的、行业支持的优化。这不是个人推荐或要求。但就语义而言,HTML规范中没有任何内容针对
script
标记之外的
head
标记。因此,实际上只有一个组织原因。那么
头部
身体底部
之间有什么区别呢?同意状态信息。我知道这是雅虎的建议,很多大型网站都使用它,或者至少在分析等外部脚本中使用它,而不仅仅是你把它扔出去。我只是不喜欢这种做法。语义不一定与语言规范相联系。在布局中使用表是完全合法的,但这并不意味着它在语义上是正确的。关键是当你链接一个JS库时,它的元信息不是文档的一部分(或者至少是文档体)。同样的推理是,
链接
标记被放置在
头部
。语义正确。它是valid的同义词,这是我应该说的。但是你对
链接的类比是错误的。事实上,这是HTML规范的一部分,如果您将页面放在头部之外,它将使页面无效。
Sigma.async_script_load('http://example.com/underscore/underscore-min.js', '_', function() {
  _([1,2,3,2,3,1]).uniq();
});