2012-07-13 141 views
0

我知道您可以使用函数setInterval以固定的时间间隔调用您的ajax函数。我想,虽然实现是这样的:jQuery - 如何在满足某些条件时调用ajax

while (true) //but obviously this while loop will block other code. I'd like it non-blocking 
{ //if certain condition is met, call my ajax function. 
} 

所以基本上代码应该默默地在后台坐着,听着。如果某些条件满足,则发送ajax呼叫。

是可能的jQuery/JavaScript?

编辑:条件:基本上,我会自动滚动大表(这是另一个问题,另一个帖子......)的行,一旦到达最后一行,条件满足,ajax被称为从服务器获取数据,重新填充表格,然后再次自动滚动。

+1

什么条件? – rsplak 2012-07-13 14:34:12

+0

请提供更多关于条件类型的信息。 – fedosov 2012-07-13 14:34:30

+0

或者关于通话的目的。 – Ladik 2012-07-13 14:34:48

回答

0

当然可以,如果你有一个事件。然后你可以附加一个处理程序。 所以问题是:什么条件?

+0

如何为我的ajax添加一个事件监听器函数,是否有一些示例代码? – neo 2012-07-13 15:00:27

+0

在这里看看事件绑定如何在jQuery,http://api.jquery上工作。com/bind/ – GTSouza 2012-07-13 15:05:30

1

在Javascript中,条件不会自动“达到”。

这是(大部分)单线程语言,其中UI线程只是坐等待事件发生,并作为响应程序员提供的事件处理程序去做的东西。只要他们在做东西,UI线程就无法处理更多的事件。

这就是为什么你不应该使用一个繁忙的循环,或以其他方式捆绑CPU在紧密循环中进行冗长的计算。

总之,你不应该永远需要调查的条件 - 它应该当因为一些事件将已发射了条件为真,使其成为真正的是显而易见的。

然后,您应该能够在该事件的处理程序中触发您的AJAX请求


编辑你现在已经澄清,要做到这一点,当滚动到达表的末尾。

每个以上,(当然)有一个事件,告诉你滚动的东西,它会告诉你有多远。

http://api.jquery.com/scroll/

您需要注册该事件的处理程序,然后触发AJAX调用在处理

+0

每种情况都是这样......如果是一个JavaScript游戏需要一个循环,那么他需要调用一个ajax来发送一个分数给服务器,就像样本 – GTSouza 2012-07-13 14:51:15

+0

@GTSouza那是无关紧要的。 – Alnitak 2012-07-13 14:52:30

+0

如果不相关,请告诉我为什么 – GTSouza 2012-07-13 14:54:34

相关问题