如何在Ajax 4.0中处理异步调用(使用jquery?)

如何在Ajax 4.0中处理异步调用(使用jquery?),jquery,html,ajax,asynchronous,Jquery,Html,Ajax,Asynchronous,在我的代码中,我做过类似的事情 $.get('/Home/Module/Submit', { moduleName: ModName, moduleParameters: moduleParameters }, function(result) { $("#" + target).html(result); }); 当我在函数result{..}中放入警报

在我的代码中,我做过类似的事情

 $.get('/Home/Module/Submit',
                { moduleName: ModName,
                    moduleParameters: moduleParameters
                },

   function(result) {


       $("#" + target).html(result);

   });
当我在函数result{..}中放入警报时 它完美地显示了警报和.aspx页面上“目标”的html 但是当我删除警报时。。在页面上,“html”不会出现或随机出现此方法被多次调用

我认为'result'是异步运行的,这就是为什么它不与相应的'div'绑定的原因 然而,在上一次迭代中,它每次都被绑定

我们能让进程停止直到数据绑定吗? 或者是否有任何类似警报的功能可以使数据绑定。。
在不干扰UI的情况下,您的回调函数会使用在外部范围(可能是全局范围)中定义的目标。你说你做了几次这个调用,最后一次迭代每次都有效,所以我猜目标实际上是被一些外部影响改变的?在这种情况下,目标的价值很可能不是执行时您认为的那样。您可以创建一个新的闭包,其中target将确保不会更改:

$.get('/Home/Module/Submit', { data }, (function(t) {
    return function(result) {
        $("#" + t).html(result);
    }
})(target));
我们在这里要做的是创建一个新的匿名函数,返回您想要使用的回调函数。你可以把它看作是一个工厂函数。此函数将在调用get之前立即被调用,因为必须对其求值以计算出要传递给get的第三个参数。我们调用这个函数,传递target,因此target的值将是在AJAX调用时它拥有的值,而不是像以前一样,在AJAX响应时。将为每个迭代创建一个新的闭包,其中其各自的t参数将对应于创建时目标的值


您不想想出一些方法,在执行其他某段代码之前阻止JavaScript执行。

html会随机绑定…但最后一个位置总是显示…这个问题只出现在Internet Explorer中,而不出现在Chrome和Firefox中