顺序Web服务调用不起作用

时间:2010-01-18 07:25:31

标签: javascript web-services

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

我的所有网络服务调用都是通过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
}
}

1 个答案:

答案 0 :(得分:0)

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

如果你正在使用JQuery,你可以将async参数设置为false,这将强制你想要的顺序,但它会降低页面的整体性能。请参阅此question

相关问题