0

我有一个包含几十行(最多 100 行)的表,每行都有 1 个元素,并附加了一个 mouseover 事件。在鼠标悬停时,我打开一个工具提示,需要发出一个 AJAX 请求来填充一些数据。

我的问题很简单:如果用户在所有附加了该事件的元素上上下移动鼠标,我一次会发出大量请求。我想以一种或另一种方式节流它,但我不确定如何去做。

我将不得不检查在最后n秒内是否执行了相同的事件,但是如何在事件 1 的触发和事件 2 的触发之间保持联系?

4

2 回答 2

1

在 AJAX 调用开始时需要一个标志,如果标志为零,则从函数返回。如何确定变量的范围取决于您。

if(AJAXOK==0) {
   return;
}    
AJAXOK = 1;

在 AJAX 调用中设置变量,以便在超时后自行重置:

window.setInterval(function() { AJAXOK = 1 },5000);
AJAXOK = 0;
于 2013-04-02T14:30:18.583 回答
1

如果您有兴趣尝试不同的方法,那么响应式扩展就是专为此类事情而设计的:

http://reactive-extensions.github.com/RxJS

于 2013-04-02T14:37:00.020 回答