setTimeout()具有这个不错的功能,您可以在其中获取超时参考并取消超时。
var ajaxLoadTimeout;$(document).ajaxStart(function() { ajaxLoadTimeout = setTimeout(function() { $("#loader").css("display","block"); }, 5000);}).ajaxSuccess(function() { clearTimeout(ajaxLoadTimeout); $("#loader").css("display","none");});这样可以防止超时,而不是等待超时,并且如果已调用完成,则什么也不做(如Jacob的回答)。



