我有一個asp.net MVC應用程序,它使用最少的AJAX。在服務器響應HTML和數據之前,我有一些頁面需要很多數據庫工作。「等待服務器」時運行jquery或javascript函數
根據請求的內容和用戶有多少條記錄,用戶點擊按鈕或鏈接後可能會有幾秒或更長的延遲(可能是GET,POST,href,表單提交等)。 ),瀏覽器已經提交了請求並且正在旋轉輪子等待響應,但尚未加載新頁面,因爲服務器尚未返回任何內容。
因此,使用document.ready
和window.load
等都不是解決方案,將工作來觸發加載微調器。我需要一旦服務器發出請求就立即啓動。
此外,使用沿着線的東西
$(document).click(function() {//start loading spinner here}
也將無法工作,因爲有元素所有的地方可以與之交互,但不要讓一個服務器請求(即引導導航板等)
我需要實現一個加載微調器(或類似的東西,表示工作正在進行並且響應即將到來),當服務器發出請求時運行,並且瀏覽器正在「等待響應服務器」。
更新 - 事情我已經嘗試:
這將觸發正在加載的旋轉插頭loading.js
在需要時,也將觸發它時,它不是,這樣的自舉UI元素等進行交互時,作爲
$(document).click(function() {
//Start loading.js anytime a button is clicked
//Show full page LoadingOverlay
$.LoadingOverlay("show");
});
這不起作用,因爲一旦服務器返回響應(這是其中長延遲是),還有一個第二左的僅餾分爲瀏覽器呈現HTML並顯示圖。
$(document).ready(function() {
// Show full page LoadingOverlay
$.LoadingOverlay("show");
});
$(window).on(load, function() {
//Stop loading.js after page loads
$.LoadingOverlay("hide");
});
到目前爲止,你做了什麼? –
查找['beforeSend:函數(){...}'](http://api.jquery.com/jquery.ajax/) –
我與'$(文件)。單擊發揮各地(函數() {//在這裏開始加載微調器}',並考慮了各種方法,我可以推斷出所有頁面上的不同按鈕和鏈接類型,儘管這聽起來非常混亂,並且想要了解是否有全局事件jquery或javascript可以綁定到瀏覽器的「等待響應」狀態 – amartin