2015-03-31 32 views
-1

我已經使用ASP.MVC創建了多屏幕方法 爲此,我使用單視圖和多div的概念(每個div都是每個屏幕)。當ajax異步設置爲false時顯示微調

當用戶點擊一個/上一個按鈕,它會驗證所有客戶端和服務器端驗證那麼只有它會去下一個/前一屏(指div.show)

對於我使用Ajax調用服務器端調用,結果將是真或假。基於該頁面將移動到下一個/上一個屏幕。

爲此,我在ajax調用中設置了Async = false。這意味着它將等待服務器響應,否則它不能等待服務器響應,以便它導致下一個/上一個屏幕。

任何人都可以請建議我的解決方案,我們如何顯示微調這種方法..? 在這裏,我們不應該遵循會話的概念,以便我們選擇這個單視圖與多個div的方法。

+0

您可以顯示一個圖像加載器只調用Ajax請求之前,隱藏在阿賈克斯成功方法加載圖像。 – 2015-03-31 06:09:17

+0

我只在做那一件。但是當我們可以使用async = false時,它可以凍結ui。所以我們不能顯示這個微調。 它可以正常工作,當我們可以設置async = true或刪除該屬性。 – 2015-03-31 06:27:54

回答

0

同步ajax調用將始終凍結瀏覽器。你應該使用包裝在jQuery的異步調用 $ .when()。then();

$.when(function() { 
    if (validateFunction()) { 
     $.ajax(...); 
    } else { 
     // code the execute on not valid 
    } 
}) 
.then(function() { 
    hideSpinner(); 
}); 

在服務呼叫期間保持微調框處於活動狀態。

見文檔https://api.jquery.com/jquery.when/

+0

然後它會進入下一個屏幕,即使它有錯誤驗證。我們應該驗證所有的服務器驗證,然後只有我們必須移動到下一個屏幕 – 2015-04-01 09:18:17

+0

您可以將您的Ajax包裝在驗證函數中,該驗證函數在$ .when()內的有效信息上執行。我將更新我的僞代碼 – vbranden 2015-04-01 13:37:06

+0

確定謝謝 – 2015-04-01 13:46:54

相關問題