我有一个页面可以在$('document').ready()
中发出几个ajax查询。我希望在收到第一个ajax调用后使用fadeIn()
或animation()
显示一些信息几秒钟。
动画播放期间是否会阻止以下js / ajax调用?或者我应该使用setTimeout来延迟动画一秒钟,以便可以异步启动ajax调用吗?
修改
我的代码看起来像这样。其他人的ajax呼叫会被阻止5秒钟吗?
$.ajax({..., success: function(result) {
$('#msg').html(result.xxx);
$('#msg').fadeIn(5000);
// Other ajax calls
$.ajax(....)
....
}
答案 0 :(得分:4)
是的,它们是无阻塞的。动画方法只是启动动画并立即返回。
更新用户界面的任何代码都必须是非阻塞的,因为在任何函数运行时都不会更新用户界面。
答案 1 :(得分:1)
所有 javascript都可以被视为阻止,因为它完全是单线程的。
你做不了类似的事情:
fadeIn
sleep(5 seconds)
fadeOut
不会导致传入的ajax响应排队,直到fadeOut
返回。使用setTimeout可能是最好的事情。
编辑:正如@Guffa指出的那样,对fadeIn
和fadeOut
的实际调用本身并不会阻止调用。你可能想要的是:
fadeIn(time, function() {
setTimeout("fadeOut()", 5000);
});
或者说是这样的话。