Итак, я создал небольшой хак, который, кажется, работает:
На стороне клиента у меня есть:
function onClickHandler() {
updateUI("Beginning Batch...");
setTimeout(klugeyClick, 0);
}
function klugeyClick() {
$.ajax({ type: "GET", dataType: "json", url: "/ControllerName/Action1", success: function(msg) { updateUI(msg) }, async: false, error: function(XMLHttpRequest, textStatus, errorThrown) { updateUI("Action1 Error: " + XMLHttpRequest + " -- " + textStatus + " ---- " + errorThrown); } });
setTimeout(klugeyClick2, 0);
}
function klugeyClick2() {
$.ajax({ type: "GET", dataType: "json", url: "/ControllerName/Action2", success: function(msg) { updateUI(msg) }, async: false, error: function(XMLHttpRequest, textStatus, errorThrown) { updateUI("Action2 Error: " + XMLHttpRequest + " -- " + textStatus + " ---- " + errorThrown); } });
setTimeout(klugeyClick3, 0);
}
function klugeyClick3() {
$.ajax({ type: "GET", dataType: "json", url: "/ControllerName/Action3", success: function(msg) { updateUI(msg) }, async: false, error: function(XMLHttpRequest, textStatus, errorThrown) { updateUI("Action3 Error: " + XMLHttpRequest + " -- " + textStatus + " ---- " + errorThrown); } });
}
function updateUI(result) {
$("#UIelement").text(result);
}
На стороне сервера у меня есть:
Function Action1() As JsonResult
System.Threading.Thread.Sleep(3000)
Return Json("Operation One Complete...")
End Function
Function Action2() As JsonResult
System.Threading.Thread.Sleep(3000)
Return Json("Operation Two Complete...")
End Function
Function Action3() As JsonResult
System.Threading.Thread.Sleep(3000)
Return Json("Operation Three Complete...")
End Function
Теперь у меня две проблемы. Во-первых, я хотел бы получить следующее сообщение, которое отображает «Batch Complete», но следуя тому же шаблону и просто добавив еще один «klugeyClick» с вызовом UpdateUI (с или без seTimeout), заставляет не отображаться последнее сообщение операции , Я думаю, что обратный вызов в методе jQuery.ajax заставляет этот kluge работать каким-то образом, но без вызова ajax я не могу поместить никаких последующих сообщений.
Следующая проблема заключается в том, что, хотя все мои вызовы поступают на мой веб-сервис и возвращают результаты json просто отлично, я всегда получаю сообщение об ошибке, возвращаемое из обратного вызова jQuery. Есть идеи, почему это может быть?
Спасибо.