据我了解,setTimeout()可以用来阻止代码暂时执行,但是在以下代码中似乎不是这样:
...}).done(function recursionLoad(){
var timerLoad = setTimeout(function(){
},3000)
$.ajax({
type:'GET',
url:'modelBN.xml',
beforeSend: function(){$('#query-results').html('<img src="images/ajax-loader.gif"><p>Loading...</p>'); },
timeout: 10000,
error: function(xhr, status, error){...
所以会发生什么是立即进行AJAX调用而不是延迟3秒。我只是错误地使用setTimeout,还是有一些关于AJAX阻止它工作的东西?感谢您的帮助
答案 0 :(得分:1)
setTimeout
将在您在第二个参数中指定的时间之后调用您传递给它的函数(在第一个参数中)。
它不是sleep
函数,也不会阻止其他代码运行。
如果您希望在时间结束后对$.ajax
进行调用,则需要从传递给setTimeout
的函数执行此操作(而不是调用setTimeout
(使用3秒后无效的函数,然后立即调用$.ajax
)。