POST请求:返回状态报告
问题描述:
我有几个谷歌表,我正在寻找一个表中的值。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等等。%的表已经被处理。
谢谢您的帮助
答
POST请求是一个离散的交易,所以你不能直接这样做。我可能会这样做的方式是公开一个API点,该API点采用唯一键来标识事务,当查询API点时,它将发回响应以显示查询的状态。
以非API的方式进行此操作,您可以尝试使用websockets进行操作,该操作允许客户端和服务器之间进行双向通信。
您可以在HTTP comminucation中添加'GetNumberOfSheets'方法。然后您可以处理该进程栏客户端。 – rst