2013-05-30 66 views
0

我有一個.NET web服務,它必須執行幾個操作,我想通過回調函數顯示進度。webservice可以將回調函數作爲參數嗎?

這是函數

「//vb.NET

<WebMethod(EnableSession:=True)> _ 
     <ScriptMethod(ResponseFormat:=ResponseFormat.Json, XMLSerializeString:=False)> _ 
     Public Shared Function RebuildLuceneIndex(options As List(Of RebuildLuceneOption), callbackProgress As Action(Of String, Boolean)) 

     For Each opt As RebuildLuceneOption In options 
      Try 
       Select Case opt.Action.ToLower() 
        Case "clear" 
        ....... 
       End Select 
       callbackProgress.Invoke(opt.Action.ToLower(), True) 
      Catch ex As Exception 
       callbackProgress.Invoke(opt.Action.ToLower(), False) 
      End Try 
     Next 

    End Function 

林奮力鍛鍊jQuery的語法調用此web服務傳遞字符串的JSON陣列和回調,其功能然後,我可以回調顯示進度。

// JavaScript的

function RebuildLuceneProgressCallback(InvokedMethod, Successfull) { 
    if (Successfull) { 
     console.log(InvokedMethod + ' Succeeded'); 
    } 
    else { 
     console.log(InvokedMethod + ' Failed'); 
    }   
} 

回答

0

您需要了分裂的方法爲兩種方法:開始&結束。請參閱Server-Side Asynchronous Web Methods上的這篇文章。

然後在你的jQuery調用中,你需要調用Begin()方法,接下來的請求來檢查方法是否完成。

相關問題