![](/img/trans.png)
[英]How can I determine when all of the resources of an AJAX website have fully loaded?
[英]how can I determine when a block of HTML is fully rendered
我正在使用AJAX調用向頁面動態添加HTML塊。 在將元素添加到頁面后,我需要知道元素的高度,但是由於添加的元素花費了未知的時間來渲染,因此我無法獲得准確的結果。 有什么方法可以確保在元素在頁面上完成渲染后運行某些JS。
DOM是同步操作的,因此當您對appendChild
/ append
/ innerHTML
/ etc的調用返回時,HTML被“完全渲染”。
但是,資源(即圖像)的加載並不會同步發生。 因此,盡管您可以在插入后在行上檢查新插入內容的渲染高度,但該高度將不包括任何圖像的高度。
要解決此問題,可以顯式指定圖像的寬度和高度– <img width=... height=...>
–或可以偵聽每個新插入的圖像上的load
事件。 每次觸發事件時,請重新計算元素的高度。 (請注意,每個新圖像都會發生一次。)類似:
$('#somediv').html('... <img src="..."> ...'); // or whatever
$('#somediv img').on('load', function() {
var h = $('#somediv').height();
// ...and do what you will with the height
});
在沒有看到您的標記和/或代碼的情況下很難知道,但是如果您正在處理AJAX,則可能想在.done()
方法中捕獲一些邏輯。 在這里看看:
另外,您可能想看看jQuery的諾言:
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.