【发布时间】:2020-05-20 16:56:10
【问题描述】:
所以我目前在前端有一个 ajax 请求,它每 7 秒向特定 URL 发送一个请求。因为它是在线的,有时它需要更长的时间来处理这个功能,它最终接受了越来越多的请求,甚至没有接受第一个请求,我最终得到了 4 个 ping 请求。我想知道是否有一种方法可以一次接受一个,所以如果 ajax 请求发送一个请求并且请求之前的那个仍然在 ping ,那么后端将拒绝它,或者也许有一种方法可以在前端做.
setInterval(() => {
$.ajax({
type: "POST",
url: "site/example",
.....
}, 7000);
所以在本例中,后端将拒绝对site/example 的请求。前端不会发送 ajax 请求。直到最初的请求没有得到它的回报。它将为下一个请求做同样的事情等等......
【问题讨论】:
-
在前端而不是在后端限制同时请求会更好(并且可能更容易) - 如果多个客户端想要同时访问端点怎么办?
-
好的,我该怎么做?我根据你所说的改变了问题
-
虽然您所要求的在技术上是可行的,但它与 Web 的设计工作方式背道而驰。您能否详细解释一下您的用例以及您为什么也想要这个?这可能有助于我们解决更重要的问题。
-
@GarrettMotzner 我的问题是它每 x 秒检查一次 URL,如果它返回一个文件,它将转到该文件的 URL,有时它会加载 4 个请求,这些请求正在 ping 然后全部接受它们
-
为什么同时多个请求是一件坏事?通常,您构建 Web 服务器来处理这种情况。该错误通常是当 Web 服务器无法处理所需数量的请求时,而不是太多。但是,有throttling utilities 可以防止客户端在需要时发出过多请求。
标签: javascript ajax flask request