首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >head部分中的异步javascript仅在刷新页面后才起作用

head部分中的异步javascript仅在刷新页面后才起作用
EN

Stack Overflow用户
提问于 2016-08-17 17:59:54
回答 3查看 544关注 0票数 0

我正尝试在head部分异步加载javascript。在开发人员控制台中加载页面后,我出现错误“未定义jQuery”。在一两次刷新之后,脚本就会加载并正常工作。在脚本标记中不使用"async“也可以。为什么会发生这种情况,有没有办法解决这个问题。提前感谢

EN

回答 3

Stack Overflow用户

发布于 2016-08-17 18:10:32

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

票数 0
EN

Stack Overflow用户

发布于 2016-08-17 18:11:26

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

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

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

代码语言:javascript
复制
function start() {

    /* your code */

}

第一次找不到jQuery的原因是,当jQuery完全加载时,浏览器会对其进行缓存。它必须在您第一次实际访问或强制重新加载页面时加载整个文件。

票数 0
EN

Stack Overflow用户

发布于 2016-08-17 18:11:51

当您在script标记上使用async时,脚本可以在页面加载过程中的任何时刻以任何顺序执行,这就是为什么您的脚本有时只能工作的原因。您需要知道执行顺序,以换取稍微快一点的页面加载速度。这通常要求您加载的脚本不相互依赖,也不需要精心设计的加载方案-通常使用一个回调函数,该函数在没有异步的情况下运行,并在依赖项报告它们可用时调用您的代码。

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

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38993479

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档