我知道您可以使用函数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从服务器获取数据,重新填充表格,然后再次开始自动滚动。
答案 0 :(得分:1)
在Javascript中,条件不会单独“满足”。
它(大多数情况下)是一种单线程语言,其中UI线程只是等待事件发生,作为响应,程序员提供的事件处理程序就可以了。只要他们正在做的事情,UI线程就无法再处理任何事件了。
这就是为什么你不应该使用繁忙的循环,或者以紧密的循环占用CPU进行冗长的计算。
总而言之,你不应该曾需要民意调查一个条件 - 当条件变为真时它应该是明显的,因为某些事件会被触发,允许它变为真实。
然后,您应该能够在该事件的处理程序中触发您的AJAX请求。
编辑您现在已经澄清了当滚动到达表格末尾时您想要这样做。
如上所述,(当然)有一个事件告诉你滚动的东西,它会告诉你多远。
查看http://api.jquery.com/scroll/
您需要为该事件注册一个处理程序,然后在该处理程序中触发您的AJAX调用。
答案 1 :(得分:0)
如果您有活动,当然可以。然后你可以附加一个处理程序。 所以问题是:什么条件?