2011-04-26 53 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