检测何时通过ajax加载资源

时间:2009-05-27 08:00:01

标签: jquery ajax dom

我最近询问如何检测页面的所有资源何时被加载,例如图像和样式表。答案回来了,使用$(window).load(); jQuery中的方法。

我现在的问题是如何检测内容是否通过AJAX加载完成。例如,AJAX将一些img元素注入到DOM中......如何判断这些图像何时完成加载?

3 个答案:

答案 0 :(得分:2)

$.get()$.post()函数中,您可以提供在ajax请求完成时将调用的函数的名称。例如:

$.get("something.php",{data:'test'},foo);

function foo()
{
   // This function will be called when the request has completed
}

或者:

$.get("something.php",{data:'test'},function()
  {
    //This function will be called in the same way
  }

);

答案 1 :(得分:2)

如果您拨打 $.ajax ,可以为成功请求设置回调函数:

$.ajax({
    url: _url,
    type: _type,
    data: _data,
    dataType: _dataType,
    success: _success
})

var _success = function(result) {
    $html = $(result);
    alert('HTML downloaded');

    // inject HTML into DOM here
}

你需要通过$ html来获取图像元素,并为每个图像注册加载函数回调函数,该回调函数在加载图像时触发:

$('#myImage').load(function() {  
    alert('Image Loaded');  
});

答案 2 :(得分:0)

检测ajax fetch何时很容易:使用jQuery中定义的Ajax事件:http://docs.jquery.com/Ajax

但我不确定你是在问同样的事情。要检测图像何时完成加载(可能,这将等于图像的src属性更改时的事件),您可以使用突变事件。 http://wiki.github.com/jollytoad/jquery.mutation-events 欢呼声,

JRH。