2011-04-26 49 views
1

如果我們有一個在加載時執行Javascript的頁面,並且此Javascript通過AJAX插入新元素,這是否會延遲DOM被視爲加載所需的時間?可以通過AJAX插入元素延遲DOM加載嗎? DOM何時考慮加載?

我們的一些UI只在DOM加載後才起作用(使用jQuery的「ready」函數),並且我們認爲通過AJAX異步插入頁面元素可以更快地加載DOM,提高感知的響應能力,並允許用戶與頁面更早。如果這是對的,我們做錯了什麼。

有什麼想法?

謝謝!

回答

0

如果我明白你想要做什麼,你想加載頁面,然後異步加載內容。如果您想要這樣做以提高感知的加載速度,請從您的$(function(){});調用中運行您的ajax代碼,而不是之前。這會在DOM加載時觸發,這意味着頁面的所有其餘部分(除了您要異步加載的內容)都已加載。

用戶會感覺到的效果是整個頁面除了內容加載(我假設你會有某種旋轉圖像或者你的內容將被加載的東西),然後你打電話,然後您刪除加載圖標並插入您的內容。

+0

謝謝,傑森。因此,如果頁面在頁面加載時執行Javascript,並且此JavaScript通過AJAX插入新元素,那麼在插入這些新元素之前不會考慮加載DOM?我們的理解是插入AJAX的元素,因爲它們是異步插入的,不會減慢其他非JS元素(例如後來出現的DIV元素)的渲染速度。 – Crashalot 2011-04-26 18:53:00

+0

它取決於你的頁面加載的JavaScript是在哪裏。你是在''還是在''標籤之前?一旦DOM被加載,'document.ready'就會觸發。它不關心你正在做的任何ajax調用,因爲它不知道你在用ajax調用你正在做什麼。 – Jason 2011-04-26 19:03:10

+0

Javascript是和標記之間的中間值,但由於它是異步的,它不應該顯着減慢後續DOM元素的加載速度,對吧? – Crashalot 2011-04-26 19:55:32