首页 > 解决方案 > Ajax 调用超出服务器的并发会话限制?

问题描述

我只找到限制为 20 个并发会话的服务器(同时最多 20 个请求)。

我的应用程序由 PHP 和 JS (jQuery) 组成。在某些时候,它会向服务器发出过多的 Ajax 调用以从 MySQL 获取数据(同时 16-18 个,每个大约需要 3-4 秒才能完成),从而导致来自服务器的资源限制已达到消息。

如何在不过多更改应用程序的情况下解决此问题?

在 devtool 的网络中,keep alive 的响应标头是Keep-Alive timeout=5, max=99.

如果我将其更改为较小的值,会有帮助吗?或者这仅意味着如果不能在 99 秒内提供服务,它将关闭该请求?

一个解决方案可能是为我所有的 Ajax 调用编写一个函数,它总是等待一秒钟来收集调用并只执行一个请求,然后它会对我的所有函数进行回调,进行调用,但它是一个痛苦做。

有没有更好更简单的解决方案?

Ajax 调用是否有一个选项可以将我的并发调用限制为假设为 5,而其余所有调用都将等到它完成?或者我应该手动使用 setTimeout 吗?

标签: jqueryajax

解决方案


您可以使用节流/去抖动技术。还有提供类似功能的jQuery 插件


推荐阅读