我有几张谷歌表,我正在寻找其中一张表中的值。
用户输入查找的值,然后在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 :(得分:2)
发布请求是一项离散交易,因此您无法直接执行此操作。我可以这样做的方法是公开一个API点,该点采用标识事务的唯一键,当查询该API点时,它会发回一个显示查询状态的响应。
以非api方式执行此操作,您可以尝试使用websockets,它允许客户端和服务器之间的双向通信。