我有一个函数需要在 5 秒时间间隔后调用。此功能在后台处理 AJAX 请求(请求转到其他网站,因此可能需要几秒钟)。函数如下:
function myFunction() {
var sendData = {
cid: cid
};
$.post('xyz.com/somepage.php', sendData, function(response) {
//processes the response
});
setTimeout(myFunction, 5000); //call again after 5 seconds
}
我需要考虑一个事实,即某些用户的互联网连接速度可能很慢,并且请求可能需要超过 5 秒的时间。所以,我需要避免再次调用该函数(或者我们说避免发送请求),直到它的工作完成。我在这个 link 上尝试了最后一段给出的方法,但它没有用。有什么建议吗?谢谢。
最佳答案
ajax调用完成后可以调用该函数
function myFunction() {
var sendData = {
cid: cid
};
$.post('xyz.com/somepage.php', sendData, function(response) {
//processes the response
}).done(function() {
setTimeout(myFunction, 5000); //call again after 5 seconds
});
}
关于javascript - 避免重复调用一个函数,除非它的工作完成,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33493865/