【问题标题】:Sequential web service call not working顺序 Web 服务调用不起作用
【发布时间】:2010-01-18 07:25:31
【问题描述】:

在我回答这个问题之前,有一点(!)一点背景知识: 我正在实施一个基于网络的搜索解决方案。使用的技术:javascript (jquery)、.net、html 等。

我所有的 Web 服务调用都是通过 javascript(跨域 ws 调用)完成的。我很少有顺序的 Web 服务调用,它们都有不同的成功回调函数。

我无法消化 - 当我在不同的地方单独调用这些 ws 时,它们会返回正确的结果,但有时它们会依次给出,有时不会。

示例代码:这并不总是给出预期的结果。

function submitSearchRequest(_queryString, Stores) { 
    if (Stores[1].length>0) {
    //generate 'searchRequestForArtifact' request object
    getSearchResponse("successcallForArtifact", _searchRequestForArtifact); 
    }
    if (Stores[2].length > 0) {
    //generate 'searchRequestForPerson' request object
    getSearchResponse("successcallForPerson", _searchRequestForPerson);
    }
}

function successcallForArtifact(response)
{
    //show the results
}

function successcallForPerson(response)
{
    //show the results
}
}

【问题讨论】:

    标签: javascript web-services


    【解决方案1】:

    如果您需要按顺序搜索,则需要在每个搜索返回后才开始。目前您正在进行异步调用,这意味着它会被启动,然后继续执行代码。目前,如果第二次调用只是更快,订单将被关闭。您将需要进行同步调用,或者只是通过调用工件的成功函数中的第二次搜索来强制执行顺序。

    如果您使用的是 JQuery,您可以将 async 参数设置为 false,这将强制执行您想要的顺序,但会降低页面的整体性能。看到这个question

    【讨论】:

      猜你喜欢
      • 2015-10-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-06-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多