2017-08-24 8 views
1

私はいくつかのGoogleスプレッドシートを持っており、シートの1つで値を探しています。POSTリクエスト:ステータスレポートを返す

ユーザーが見上げた値を入力し、検索は、その後MVCのアクションで、サーバー上で処理されます。

クライアント側

function findKPI() { 
    var lookedUpValue = $('#lookedUpValue').val(); 
    var sheetIDArray = getSheetIDArray(); 
    var payload = { sheetIDArray: sheetIDArray, lookedUpValue: lookedUpValue } 
    $.post('GetValueSheet', payload) 
     .done(function (data) { alert("OK") }) 
     .fail(function (data) { alert("Error: " + data.responseText) }) 
} 

とサーバー側:

<HttpPost> 
Function GetValueSheet(sheetIDArray As List(Of String), lookedUpValue As String) As ActionResult 
    Dim API As New GoogleAPI(Web.HttpContext.Current.Request.PhysicalApplicationPath + "APIKey.json") 
    Dim ValuesList As List(Of String) 
    For Each sheetID In sheetIDArray 
     ValuesList = API.getValuesList(sheetID) 
     If ValuesList.Contains(lookedUpValue) Then Return Json(sheetID) 
    Next 
    Return Json(Nothing) 
End Function 

通過するシートが非常に多く、処理に時間がかかることがあります。

中間結果をクライアントに送信して、シートの10,50などが処理されたことを表示することが可能かどうかを確認したいと思います。あなたが直接それを行うことはできませんので

は、

+0

「GetNumberOfSheets」メソッドをHttpで追加できます。その後、そのプロセス・バー・クライアント側を処理できます。 – rst

答えて

2

POSTリクエストが個別の取引されているあなたの助けをいただき、ありがとうございます。これを行う方法は、トランザクションを識別する一意のキーを取得するAPIポイントを公開することです。そのAPIポイントにクエリが実行されると、クエリのステータスを示す応答が返されます。

api以外の方法で実行すると、クライアントとサーバー間の双方向通信を可能にするWebソケットを使用して試すことができます。

関連する問題