我如何知道 AJAX 加载的内容何时完成图像加载?
我正在从 AJAX 请求加载 HTML,以及其中的一些 img
标记。
我需要知道 AJAX 中加载的图像何时完全加载以调整容器大小。 我不知道结果中有多少张图像,所以我不能简单地检查 .complete
值。
你知道这个问题的解决方案吗?
I'm loading HTML from an AJAX request, and some img
tags in it.
I need to know when the images loaded in the AJAX are fully loaded to resize the container.
I don't know how many images are in the result, so I can't simply check the .complete
value.
Do you know a solution for this?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
如果您使用 jQuery,则
$(window).load()
命令可以设置一个在加载所有图像后调用的函数,如下所示:如果您不使用 jQuery,当我想要它的一点点功能时,我会做我已经做过的事情:下载它并检查源代码以了解它是如何实现的。 然后就这样做:-)
If you're using jQuery, the
$(window).load()
command can set up a function to be called once all the images are loaded, as follows:If you're not using jQuery, I'd just do what I've done when I want a little bit of its functionality: download it and examine the source to see how it does it. Then do that :-)
好的,多亏了 Pax,我找到了解决方案。
在 ajax 请求的 success 事件(使用 jQuery)中,我添加了以下代码:
谢谢你们!
Ok, thanks to Pax, I've found the solution.
On the success event of the ajax request (using jQuery), I've added the following code:
Thanks both of you!
XMLHTTPrequests
具有可用于确定加载何时完成的属性。 如果您直接使用 JavaScript,则需要为onreadystatechange
事件分配一个函数。 每次状态改变时都会调用此方法。 状态存储在ReadyState
中,如下所示:在您的函数中,您检查状态是否为 4 并调用其他所需函数。
jQuery 有一些事件可以告诉您某些事情何时发生。 查看 AJAX 文档
XMLHTTPrequests
have properties that you can use to determine when the load has completed. If you are using JavaScript directly, you would need to assign a function to theonreadystatechange
event. This is called each time that the state changes. The states are stored inReadyState
and are:In your function, you check that the status is 4 and call the other required functions.
jQuery has events that tell you when certain things have occurred. View the AJAX Documentation