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