jQuery . lastload的几个事件

jQuery .lastLoad of several events

本文关键字:几个 事件 lastload jQuery      更新时间:2023-09-26

我正在将远程内容加载到几个div中,并希望对它们进行测量,并在全部加载后比较结果。获得这个活动的最佳方式是什么?

伪代码:

$("#div1").load("www.foo.com/1");
$("#div2").load("www.foo.com/2");
$("#div3").load("www.foo.com/3");
function div1_and_div2_loaded(){
    alert("Success!");
}

您可以使用$.when()在一组AJAX请求完成时执行代码。您需要修改代码以使用$.ajax,因为load不返回延迟对象。试试这个:

var request1 = $.ajax({
    url: 'http://www.foo.com/1',
    success: function(response) {
        $('#div1').html(response);
    }
})
var request2 = $.ajax({
    url: 'http://www.foo.com/2',
    success: function(response) {
        $('#div2').html(response);
    }
})
$.when(request1, request2).done(function() {
    alert('success!');
});

此模式的优点是所有请求将同时执行,从而导致更快的总体加载时间。

*如果你有很多请求,浏览器可能会排队。

显然,您需要DRY up请求的创建,这只是一个快速而肮脏的示例。