head部分中的异步javascript仅在刷新页面后工作

时间:2016-08-17 09:59:54

标签: javascript jquery asynchronous

我正在尝试在head部分加载javascript异步。在开发人员控制台中加载页面后,我有错误“jQuery未定义”。经过一两次刷新脚本加载并完美运行。没有“async”内部脚本标记也可以。为什么会发生这种情况,有没有办法解决这个问题。提前致谢

3 个答案:

答案 0 :(得分:0)

正如Dellirium所说,JQuery需要放在需要它的javascript代码之前。您可以尝试将JQuery放在<head>和您在正文标记<body>末尾运行的脚本中。

答案 1 :(得分:0)

你可以添加一个在加载jQuery时要执行的函数。

<script src="jquery.js&callback=start"</script>

&amp; callback = start 在您的实际javascript文件中执行start()函数,您可以使用它来包装代码。

function start() {

    /* your code */

}

第一次找不到jQuery的原因是因为你的浏览器在jQuery满载时会缓存jQuery。它必须在您第一次实际访问或强制重新加载页面时加载整个文件。

答案 2 :(得分:0)

async标记上使用script时,脚本可以在页面加载期间的任何时刻以任何顺序执行,这就是您的脚本有时只能运行的原因。您可以通过了解执行顺序来略微加快页面加载。这通常要求您加载的脚本不依赖于彼此或精心设计的加载方案 - 通常使用一个没有异步运行的回调函数,并在依赖项报告它们可用时调用您的代码。

您应该考虑async是否真的适合您的设置。