gpt4 book ai didi

javascript - 如何在 jQuery 上调用同一篇文章,有快捷方式吗?

转载 作者:行者123 更新时间:2023-12-03 02:20:10 25 4
gpt4 key购买 nike

我需要在完成后启动相同的 ajax 请求。我这样做的原因是因为 setInterval 不提供给我,不能保证第一秒内发出的所有请求都会完成,直到第二次 setInterval 调用。

我看到了一切,从setInterval暂停函数(谁不存在)直到jQuery ajaxStop函数在这种情况下有用,但对我来说很难实现,所以我意识到最合乎逻辑和自然的方式当请求完成时,将在其内部调用相同的请求。

任何人都知道如何调用相同的 ajax 请求,而无需在回调中再次写入。我认为有更好的方法来做到这一点,但我没有找到任何相关内容。

这是我的代码:

$.post('{% url "orderbook>get-available-balance" %}', {symbol: vm.base_currency}, function(response) {
vm.base_currency_balance = response.available_balance;
});

我想要的是这样的:

var post_1 = $.post('{% url "orderbook>get-available-balance" %}', {symbol: vm.base_currency}, function(response) {
vm.base_currency_balance = response.available_balance;

post_1();
});

有一种方法可以本地执行此操作或以正确的方式实现此行为?

抱歉,我不是 Javascript 人。

最佳答案

如果你想重复调用同一个ajax调用,那么你只需要一点递归,我认为:

function post_1() {
$.post('{% url "orderbook>get-available-balance" %}', {symbol: vm.base_currency}, function(response) {
vm.base_currency_balance = response.available_balance;
post_1(); //call the same function again
});
}

//to kick things off the first time:
post_1();

如果您希望每次调用之间有短暂的延迟(我认为这也可能绕过递归限制),您可以这样做:

//...
vm.base_currency_balance = response.available_balance;
setTimeout(post_1, 3000); //call the same function again
//...etc

最好不要让 ajax 调用太频繁,或者执行像这样的长或复杂的请求 - 如果你犯了这个错误,它会严重影响服务器的性能,特别是如果你有很多并发请求用户。

您还应该探索像 WebSockets 这样的东西是否可以为您的需求提供更有效的解决方案。

关于javascript - 如何在 jQuery 上调用同一篇文章,有快捷方式吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49193585/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com