使ASP.NET AJAX函数调用同步

时间:2016-09-02 22:50:12

标签: asp.net ajax

我有一个使用ASP.NET AJAX调用Web服务的ASP.NET表单。如何使呼叫同步?

// test.aspx

<script type="text/javascript">
    function GetDescription(){
        var code = document.getElementById("<%=txtCode.ClientID%>").value;
        var description = 
            MyNamespace.MyService.GetDescription(
                code, onSuccessGetDescription, null, null);
        return false;
    }

    function OnSuccessGetDescription(result){
        var txtDescription = 
            document.getElementById("<%=txtDescription.ClientID%>");
    }
</script>
<script type="text/javascript">
    $(document).ready(//function () {

        $('#<%=cmdSave.ClientID%>').click(function (e) {
            e.preventDefault();
            if (Page_ClientValidate()){
                // Populate jQuery.UI dialog box with code and description
                // and then
                $("#confirm-dialog").dialog("open");
            }
        });

    }
</script>

<asp:TextBox ID="txtCode" />
<asp:TextBox ID="txtDescription" />
<asp:Button ID="cmdSave" />

// test.aspx.cs

protected void Page_Load(object sender, EventArgs e)
{
    txtCode.Attributes["onblur"] = "GetDescription();";
}

我所看到的这个问题的答案说我应该将async属性设置为false,但我不知道如何在这里做到这一点。 ASP.Net Ajax - PageMethods Synchronous call and retrieval of results表示无法完成。我想得到第二个意见。

如果我无法使呼叫同步,那么在OnSuccess函数返回之前进行GetTransaction轮询是否合法?什么是有效的(即不是CPU密集型)方式呢?

1 个答案:

答案 0 :(得分:0)

JQuery Asynchronous

jQuery.ajax({
url: 'http://example.com/catalog/create/' + targetNode.id + '?name=' + encode(to.inp[0].value),
success: function (result) {
   if (result.isOk == false) alert(result.message);
    },
    async: false
});