我正在使用C#和jQuery來構建表單頁面,並且我有多個輸入,如果它們被填充我想提交一個AJAX調用到附加的SQL服務器,如果他們沒有填充我想什麼都不做。 一旦所有填寫完成的AJAX調用完成,我想重新加載頁面。多個AJAX調用可能會也可能不會被調用,然後執行功能
現在我有這樣的功能:
Func1()
{
if ($'#form1').val().length > 0 {
$.post('https://foo/', {id: id, column: col1, value: $('form1').val())
}
if ($'#form2').val().length > 0 {
$.post('https://foo/', {id: id, column: col1, value: $('form2').val())
}
}
$('#submit').click(function() {
Func1();
window.location.reload(true);
});
然而,這導致被更新了一些值,但不是全部,我知道有我的異步調用的事情。我對異步調用相當陌生,但通常我會放一個.then(function(){});在他們的最後,他們工作正常,但在這種情況下,它不能解決任何問題。有人能指出我正確的資源方向來解決這個問題嗎?我無法嵌套我的AJAX調用,因爲有時2會更新,1不會。
爲什麼'C#'和'剃鬚刀'標籤?我想你在你的項目中使用它們,但他們似乎沒有任何關係。無論如何,如果你想在所有的Ajax調用完成後重新加載頁面,你可以使用'Promise.all()'來等待它們。 – nnnnnn
@nnnnnn是的,我正在使用他們兩個爲我的項目。對不起,如果他們不相關,我不確定。你能給我更多關於如何使用Promise.all()的上下文嗎? – Birdd
是的,它是因爲ajax是異步的,並且在ajax調用完成之前調用'location.reload()'。但是,ajax的全部目的是保持在同一頁面上,並且在ajax調用完全沒有意義(並且正在降低性能)之後使用'location.reload()' –