jQuery AJAX – 成功还是完成回调?

我有一个关于jQuery的AJAX函数的快速问题。

我做ajax调用的方式我做了一些事情:

$.ajax({ type: "GET", url: "/wordpress/wp-admin/admin-ajax.php", dataType: 'html', data: ({ action: 'loadHomePage'}), beforeSend: function() { document.getElementById('loading').style.visibility = 'visible'; }, complete: function(){ FB.Canvas.setAutoGrow(false); FB.Canvas.setSize({height:600}); setTimeout(function(){ FB.Canvas.setAutoGrow(true); }, 100); }, success: function(data){ data = $.trim(data); $('#ajax-content').hide().empty().fadeIn('slow').html(data); FB.Canvas.scrollTo(0,0); } }); 

问题是,在这个特殊的例子中,它是一个完整的网站,在facebook iframe中使用ajax进行页面导航,当在页面之间导航时,它似乎多次淡化内容,所以我想知道这里的最佳实践是什么部分淡出 – 它应该完整的部分吗?

我原本完成了resize的东西,但已移动它我觉得它有所不同但不确定它是否是安慰剂效果….

如果是这样,我是否通过执行以下操作来实现:

 complete: function(data){ // fade in etc 

第二,如果在源代码的订购成功之前完成,或者订单是否重要,例如成功然后完成,是否可以这样做?

在’成功’和’错误’(适用于您的请求)之后,’完成’触发并结束请求周期,其时间与您在源代码中声明它的位置无关。

完整的函数不会收到’data’参数,因此如果您的操作取决于数据,那么它将无法在那里工作。

执行successerror回调后执行完成。

所以你会得到那些可能的链条

success – > complete

error – > complete

您可能只想处理成功的呼叫。