2012-10-31 235 views
1

單擊jsp(1.jsp)中的加載按鈕時,將另一個jsp(2.jsp)加載到原始jsp(1.jsp)的div元素中, 。 這個加載的div jsp有一些大的數據表和html元素,需要花費時間進行配置(幾秒鐘)。在這段時間內,向用戶顯示加載對話框或等待屏幕是有用的,因爲jsp沒有完全準備好。 我試圖使用jQuery模態以及jQuery的顯示/隱藏如下如何確定html div元素是否已完成加載

$("#loadpage").show();  
    $("#divElement").load("2.jsp");    
    $("#loadpage").hide(); 

但萬阿英,蔣達清是,之前2.jsp是滿載獸皮()被調用。 如何保持加載gif直到2.jsp完全加載????

+0

' load()'有一個你可以使用的回調函數,但它也被棄用(用這種方法使用的整個load()函數應該是.'on('load',function(){..}',而不是即使這不是一個非常好的主意IMO)! – adeneo

+0

@ade neo您不能在div元素上使用'load'來檢查它何時被加載 - 這是不推薦使用的,它只能用於圖像,腳本,框架,iframe和窗口對象。您可以使用'load'將AJAX內容加載到其中,並使用它的回調函數,並且不推薦使用該版本。 – Ian

+0

@Ian - 你確實是對的,只是我在閱讀問題的方法來加快速度? – adeneo

回答

0

你可以通過加載函數。一旦下載完2.jsp就會被調用。

$("#divElement").load("2.jsp", function(){ 

     // content is loaded 
    }); 
2

只需使用回撥功能的負載功能的

$("#divElement").load("2.jsp", function() { 
    $("#loadpage").hide(); 
}); 

如果提供一個「完整」的回調,但後期處理和HTML插入後就一直執行回調函數 執行。對於jQuery集合中的每個元素,該回調會被觸發一次,並且這將依次設置爲每個DOM元素。

欲瞭解更多信息,可以看到JQuery Documentation of load

編輯(後評論): 如果您要檢查的錯誤,您可以實現功能的方式如下:

function(response, status, xhr) { 
    if (status == "error") { 
     // Do something on error 
    } else { 
     $("#loadpage").hide(); 
    } 
} 
+1

可能要檢查回調中的成功/錯誤(取決於OP是否在意),否則這看起來不錯:) – Ian

+0

增加了一些東西來顯示基本處理! –

+0

太棒了!我會再次投票,但這是不可能的! – Ian

相關問題