首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Jquery .ajax加载脚本的顺序错误

Jquery .ajax加载脚本的顺序错误
EN

Stack Overflow用户
提问于 2012-04-19 23:01:11
回答 1查看 675关注 0票数 0

目前的设置如下:

单击链接时,将执行以下代码:

代码语言:javascript
运行
复制
$("#main-content").load(url);

我们加载到main-content中的url主要是html,顶部有3个脚本标记,底部有3个脚本标记(已加载)。

代码本身运行良好,在本地也没有问题,但一旦我们将网站推送上线并添加了CDN,Javascript就开始失败了。经过进一步检查,这些脚本似乎不是由JQuery串行加载的。尽管我们已经像这样定义了脚本:

代码语言:javascript
运行
复制
<script type="text/javascript" src="a.js"></script>
<script type="text/javascript" src="b.js"></script>
<script type="text/javascript" src="c.js"></script>

a.js比b.js具有更大的延迟,并在稍后进行评估,因此会产生JS错误。

我知道JQuery会解析出JS文件并将它们附加到dom本身中,但我认为它是串行完成这项工作的。以前有没有人遇到过这个问题,或者知道如何解决这个问题?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-07-13 19:04:07

我找到原因了。JQuery解析出所有脚本标记,通过AJAX请求获取源代码并对其求值。这导致了这样一个事实:无论哪个AJAX请求最先完成,都将首先求值。由于CDN在a.js之前返回b.js,导致代码崩溃。

作为一种解决办法,可以使用yepnope.js并行加载,但串行执行。或者使用requirejs。

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

https://stackoverflow.com/questions/10230945

复制
相关文章

相似问题

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