如果事件发生随机数量,我如何在JavaScript/jQuery中捕获最后一个



我有一个函数,可以调整页面上的元素宽度/高度。此功能由自定义dimensionchange事件触发。

$(window).trigger("dimensionchange") 

每当我通过AJAX加载内容或更改页面时(我正在使用jquery mobile)。

我的问题是在某些页面上,触发了一堆AJAX请求(例如搜索页,Ajax加载标准和Intial结果),因此我最终遇到了几个"dimensionchange"事件,它们都触发了我的布局更新功能。这会大大减慢页面的速度,而不是必需的,因为我只需要捕获最后一个dimensionchange然后更新布局。

问题
有没有办法捕获事件发生随机量的事件的最后一次事件?我唯一能想到的是在每个事件中设置超时,如果... 500ms中没有其他事件...触发页面更新。但这看起来很尴尬,所以我很好奇知道是否有更好的方法?

感谢您的帮助!

您要使用jQuery的全局ajax事件处理器 ajaxStart()ajaxStop()方法。

还有另一篇有关使用 ajaxstop和ajaxstart 的文章。您需要知道的主要内容是,当第一个Ajax查询开始以及最后一个结束时,可以通知您。您可以设置这样的标志:

$(document).ready(function() {
    var ajaxBusy = false;
    $(document).ajaxStart( function() { 
        ajaxBusy = true; 
    }).ajaxStop( function() {
        ajaxBusy = false;
    });
});

相关内容

  • 没有找到相关文章

最新更新