0

我知道您可以使用该函数setInterval以固定的时间间隔调用您的 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 从中获取数据服务器,重新填充表格,然后再次开始自动滚动。

4

2 回答 2

1

在 Javascript 中,条件不会自行“满足”。

它(主要)是一种单线程语言,UI 线程只是坐在那里等待事件发生,作为响应,程序员提供的事件处理程序去做一些事情。只要他们在做事,UI 线程就无法再处理任何事件。

这就是为什么您永远不应该使用繁忙的循环,或者以其他方式占用 CPU 在紧密的循环中进行冗长的计算。

总而言之,您永远不需要轮询条件 - 当该条件变为 true 时应该很明显,因为某些事件将被触发,允许它变为 true

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


编辑你现在已经澄清你想要在滚动到达表格末尾时执行此操作。

如上所述,(当然)有一个事件告诉您滚动了一些东西,它会告诉您滚动了多远。

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

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

于 2012-07-13T14:39:43.293 回答
0

如果您有活动,当然可以。然后,您可以将处理程序附加到它。所以问题是:什么条件?

于 2012-07-13T14:35:21.940 回答