POST请求:返回状态报告

时间:2017-08-24 13:36:38

标签: javascript jquery ajax asp.net-mvc

我有几张谷歌表,我正在寻找其中一张表中的值。

用户输入查找的值,然后在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%等的纸张。

感谢您的帮助

1 个答案:

答案 0 :(得分:2)

发布请求是一项离散交易,因此您无法直接执行此操作。我可以这样做的方法是公开一个API点,该点采用标识事务的唯一键,当查询该API点时,它会发回一个显示查询状态的响应。

以非api方式执行此操作,您可以尝试使用websockets,它允许客户端和服务器之间的双向通信。