Javascript 检测HTML何时在页面上完成加载和呈现

Javascript 检测HTML何时在页面上完成加载和呈现,javascript,jquery,Javascript,Jquery,是否可以检测HTML何时在页面上完成加载和呈现?如果是,怎么做 该页面由HTML、对ajax的调用、从ajax调用接收数据、大量javascript内容和一些图像组成。我想检测一下什么时候一切都结束了。我不能做的是在末尾粘贴一个函数调用,因为我不知道何时结束 例如,页面有许多ajax样式的元素,用户可以从中选择,即用户1的元素数量可能与用户2不同,甚至顺序也可能不同 所以我不能使用最后一个函数来模拟HTML呈现的结束,因为我不知道哪一个函数将是最后一个函数。是 它将检测正文内容何时加载。$(

是否可以检测HTML何时在页面上完成加载和呈现?如果是,怎么做

该页面由HTML、对ajax的调用、从ajax调用接收数据、大量javascript内容和一些图像组成。我想检测一下什么时候一切都结束了。我不能做的是在末尾粘贴一个函数调用,因为我不知道何时结束

例如,页面有许多ajax样式的元素,用户可以从中选择,即用户1的元素数量可能与用户2不同,甚至顺序也可能不同

所以我不能使用最后一个函数来模拟HTML呈现的结束,因为我不知道哪一个函数将是最后一个函数。


它将检测正文内容何时加载。

$(文档)。就绪


将帮助您了解dom何时完成其事件和准备就绪

回答您的问题的问题在最后几句话中,您说由于用户的选择,您不知道终点在哪里。可以将JavaScript绑定到两个自动事件。jQuery调用的是
$(document).ready()
,这意味着DOM已准备好进行操作(在加载图像之前和加载外部脚本和CSS之后),以及更常见的称为body
onload
(在jQuery中,这可以写成
$(window).load()
),它在获取所有静态资产之后运行。您的Ajax调用都将在至少DOM准备好之后触发,并且在所有调用之后发生的事情都没有定义事件。为此,你需要自己跟踪他们。你可以使用“最后一匹马离开谷仓”的方法。在Ajax调用的末尾添加一点逻辑,看看它是否是最后一个,并引发一个名为“reallyAllDone”的自定义事件。

我刚刚在onload中尝试了一个警报。该警报在页面完成加载/呈现之前出现。关闭警报允许页面的其余部分完成加载/呈现,但它仍然不正确,因为我希望警报只有在所有内容都在屏幕上加载完毕后才会显示。您将onload事件附加到了正文?我只是这样测试了它
OK try instead try it,但我得到了一个错误,页面没有完成加载。然而,window.load可以工作,但它与document.ready有相同的问题。我所有的ajax调用和jquery函数都在$(document.ready()中。我是否应该在$(document).ready()中没有这些文件?我刚刚尝试将所有内容移出$(document.ready(),并在$(document.ready()中发出警报。整个页面只呈现了部分内容,我收到了一个警报。关闭警报不会完成页面加载。如果您想知道为什么这个问题会得到反对票,那就好了。
<body onload="load()">