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