在某些情况下,您的请求可能需要很长时间,因为 您的客户端互联网连接或服务器存在一些问题 联系。因此,由于客户不想等待,他点击了 Ajax 再次链接,再次将请求发送到服务器,这搞砸了 以下内容:
- 在浏览器中呈现我们的网站,因为我们提供额外的服务 加载到浏览器。
- 如果第二个请求处理正确并且您向用户展示了怎么办 该页面然后出现您第一个错误消息 上面正确加载的请求(说请求超时) 内容并扰乱阅读正确内容的用户。
如果 Ajax 函数被调用两次,我想停止第一个 Ajax 响应。我该怎么做?
最佳答案
so i want to stop the 1st Ajax response if the Ajax function is called twice
您真正想要的是在第一个请求正在进行时阻止第二个请求。
例如,您可能需要将 Save
按钮更改为 Saving...
,禁用它(并添加一个小进度轮)以向用户。 (Facebook 这样做)
关键是对用户的爱反馈。如果用户对正在发生的事情一无所知,他们就会认为什么都没有发生。
您可能想检查为什么操作需要很长时间
- 如果这是一项复杂/耗时的操作,例如报告生成或文件上传,则应该使用进度条
- 如果这是因为客户端的 Internet 连接,请提前说明,例如 Gmail:您的 Internet 连接速度较慢,并且此站点可能速度较慢。更好的是,提供后备选项,使用更少/没有 Ajax。
- 你说因为我们给浏览器增加了额外的负载:这有点可疑。你不会给浏览器额外的负载,除非你给它大量的 HTML 来呈现。仅将 Ajax 用于浏览器上的小更新。如果您预计会有较大的变化,您可能需要重新加载页面。
关于php - 如果在第一次调用得到响应之前再次调用它,如何停止第一个 ajax 请求?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7136364/