我有几个谷歌表格,我正在寻找其中一个表格中的值。
用户输入查找值,然后在服务器上以 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 等百分比的工作表已处理。
谢谢你的帮助
发布请求是一个离散事务,因此不能直接执行此操作。我可能这样做的方法是公开一个 API 点,该点采用标识事务的唯一键,当查询该 API 点时,它会发回一个响应,显示查询的状态。
以非 api 方式执行此操作,您可以尝试使用 websocket 执行此操作,它允许客户端和服务器之间进行双向通信。