javascript – jQuery AJAX结果块不会立即触发
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了javascript – jQuery AJAX结果块不会立即触发,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含988字,纯文字阅读大概需要2分钟。
内容图文
![javascript – jQuery AJAX结果块不会立即触发](/upload/InfoBanner/zyjiaocheng/722/80f86e05efd049ff819b80b84280e852.jpg)
我在循环内部有一个jQuery POST函数(多个post调用).
出于某种原因,jQuery正在发布,但是在循环结束并且一次解析所有结果之前不会返回所有数据.
FOREACH arg_value IN args
{
console.log('Do stuff');
$.post('https://blah.com/xml.php',
{arg: arg_value},
function(xml) {
$(xml).find('tag').each(function() {
console.log('Do more stuff');
});
});
}
这个的输出是……
Do stuff
Do stuff
Do stuff
Do more stuff
Do more stuff
Do more stuff
看起来jQuery正在缓存结果或者直到结束才执行它.
我期待着…
Do stuff
Do more stuff
Do stuff
Do more stuff
Do stuff
Do more stuff
有没有选项告诉jQuery暂停执行,直到有AJAX的结果?它似乎像往常一样异步运行,但在这种情况下我不希望这样.
解决方法:
AJAX调用是异步的.这意味着你的回调:
function(xml) {
$(xml).find('tag').each(function() {
console.log('Do more stuff');
});
}
仅在服务器返回响应时执行.
同时,你的for-each循环将继续运行,并记录Do stuff.
除非你在循环中做了疯狂的事情,否则循环将比服务器响应更快
就像Jan Dvorak提到的那样,即使你做了疯狂的事情,AJAX回调也会等待循环完成,导致Do东西总是出现在任何AJAX响应之前.
内容总结
以上是互联网集市为您收集整理的javascript – jQuery AJAX结果块不会立即触发全部内容,希望文章能够帮你解决javascript – jQuery AJAX结果块不会立即触发所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。