Jquery跨域获取JSON回调函数最后才执行

发布于 2022-08-25 11:59:35 字数 359 浏览 28 评论 0

在使用Jquery跨域获取JSON时出现一个非常奇怪的问题,一直解决不了:

1.首先用getJSON跨域获取JSON数据,回调函数执行也正常 2.然后把JSON中的某个以空格分隔的数据变成数组 3.对该数组执行循环,在循环中,用getJSON再跨域获取另一个JSON,然后执行一些动作

以上执行到第三步时,在跨域获取另一个JSON处卡壳了,断点跟踪发现,此处回调函数不执行,一直执行到最后一次循环时,这个回调函数才执行,而且会执行多次,执行次数为循环次数,而且是把之前每次循环时传给他的值依次执行。

也就是说,本应该是循环一次,执行一次getJSON,结果变成了循环结束,然后getJSON才用之前每次循环传给的值循环执行

这是怎么回事?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

妥活 2022-09-01 11:59:35

因为你没有完整的代码,我通过描述猜测你可能是遇到了页面中使用Jquery重复JsonP的问题,你可以参考stackoverflow这个questions

parallel-jsonp-requests-in-jquery-do-not-trigger-multiple-callback-events

你爱我像她 2022-09-01 11:59:35

循环中getJSON是用的异步吧,改成同步的应该就能解决问题。

云雾 2022-09-01 11:59:35

js 是单线程的,getJSON 是异步的,故虽然这个过程是在循环里,但返回结果时需要等待 js 引擎空闲后才会去执行,且多个循环发出的请求无法保证顺序

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文