【问题标题】:How to handle two ajax request?如何处理两个ajax请求?
【发布时间】:2014-01-07 15:30:42
【问题描述】:

你好,我有这样的序列

$(document).ready(function() {

    $("#ctl00_txtsearch").autocomplete({
        source: function(request, response) {
            $.ajax({
            // Here is the code of autocomplete which is requesting 
            // data and binding as autocomplete
            });
        });
 });
        var aa=bindonload();
    });

这是我想在页面加载时调用的另一个函数

function bindonload() { 
    $.get( "minicart.aspx#mydatacontent", function( data ) {
        var resourceContent = data;     
        var mini=$(resourceContent).find('div#pnlminicart');
        $('#smallcart').html(mini);
    });
    return false;
}

所以,我的实际问题是页面加载时 首先

绑定加载()

如果文本框有一些值,则调用然后自动完成? 但是当页面被加载并且突然我开始写入自动完成文本框然后直到 bindlonload 函数被执行自动完成将不起作用。

我不知道如何处理它我使用过 async:true 但它不起作用我不想等待第二个进程

提前谢谢....

【问题讨论】:

  • var aa=bindonload();这肯定是不正确的。方法调用中不能有 var。
  • 我有 @JernejNovak 它工作正常你建议做点别的吗?
  • 抱歉。现在看起来不错。
  • 如果在请求结束之前屏蔽输入字段怎么样?
  • 无请求时间不固定,可能需要 5-6 秒,顺便说一句,我无法阻止它

标签: javascript jquery ajax autocomplete


【解决方案1】:

嗯..我猜..应该是..你 loaddata() 不应该花费太多时间来加载。

如果有什么优化的方法,看看那个。

如果你的ajax请求依赖于另一个,那么你不能让它并行

如果你真的打算发出并行 ajax 请求,你必须使用以下方法:

$.when($.ajax("URL1"), $.ajax("URL2"))
  .then(myFunc, myFailure); 

希望对你有帮助..

注意:Ajax 调用不应依赖

更新:

    $.when( $.ajax( "/page1.php" ), $.ajax( "/page2.php" ) ).done(function( a1, a2 )
 { 

     // a1 and a2 are arguments resolved for the page1 and page2 ajax requests, respectively.  
    // Each argument is an array with the following structure: 
    [ data, statusText, jqXHR ]  
    var data = a1[ 0 ] + a2[ 0 ]; // a1[ 0 ] = "Whip", a2[ 0 ] = " It"  if ( /Whip It/.test( data ) ) {    alert( "We got what we came for!" );  
}}); 

在上面的例子中,你可以看到两个ajax请求并行执行

两个请求完成后,即两个函数都成功后,正在执行添加操作

同样,您可以将$.ajax("/page1.php") 替换为您的loaddata(),然后

$.ajax("page2.php") 与您的Auto Complete request

它们都将并行执行

【讨论】:

  • 不错的一个,但我已经用过我忘记添加它只是不工作
  • 你能举个例子吗?
  • 我仍然不明白如何在我的问题中实现这一点
猜你喜欢
  • 2013-01-31
  • 1970-01-01
  • 2010-09-06
  • 1970-01-01
  • 1970-01-01
  • 2019-11-20
  • 2022-01-11
  • 2013-11-19
  • 2012-05-18
相关资源
最近更新 更多