我正在开发一个将依赖于大量 jQuery AJAX 请求的 Web 应用程序。在我的开发环境中,通常 PHP 会在 <300ms 内处理并返回数据。
在典型的小型 Web 托管设置的生产环境中,在为异步、jQuery GET 请求设置适当的超时时我应该考虑哪些因素,以便可以随时了解客户端?
我正在开发一个将依赖于大量 jQuery AJAX 请求的 Web 应用程序。在我的开发环境中,通常 PHP 会在 <300ms 内处理并返回数据。
在典型的小型 Web 托管设置的生产环境中,在为异步、jQuery GET 请求设置适当的超时时我应该考虑哪些因素,以便可以随时了解客户端?
首先,我假设我们正在讨论不锁定浏览器的异步请求。
其次,它实际上取决于负责处理该请求的服务器的性能配置文件以及成功请求/响应的响应时间分布情况。
如果成功的请求可以在几毫秒到几分钟内完成,具体取决于请求的类型或服务器负载,那么您最好让超时时间至少与成功请求的时间一样长(允许用户等待成功请求完成的选项)。如果您担心用户变得不耐烦,那么如果请求没有快速完成,则在 10 秒后添加取消或停止按钮,这样不耐烦的用户可以保释,但耐心的用户可以等待它完成。
另一方面,如果您从研究服务器或从经验中知道,如果请求在 15 秒内没有完成,那么它不太可能成功完成,那么将超时时间设置为超过那。
第三,它还取决于 ajax 调用的重要性以及它如何适应用户交互。如果它是可选的后台操作(可能是自动完成匹配请求),您可以更快地放弃,并将下一个请求安排在未来的某个时间。如果它是一个直接的用户操作(如保存按钮),那么您真的应该努力让请求成功完成并给它更长的时间。
总而言之,您应该考虑以下因素:
ajax 请求在后台是可选的(如自动完成)还是特定的用户操作(如保存或加载)?
服务器获得成功的 ajax 响应可能需要的最长时间是多少?您应该让患者用户能够等待至少那么长时间以使请求成功。
您是否为不耐烦的用户提供取消长期运行请求的能力?如果是这样,您可以让请求持续更长时间。
如果您不知道服务器的响应速度如何,那么您可能应该让它运行至少 120 秒,因为某些服务器可能需要这么长时间,但是您应该考虑让不耐烦的用户能够中止请求并继续他们的其他业务.