如果第一个ajax请求在第一个调用获得响应之前再次被调用,如何停止第一个ajax请求
How to stop the 1st ajax request if it is called again before the first call gets a response?
在某些情况下,您的请求需要很长时间,因为您的客户端Internet连接或服务器的一些问题连接。因此,由于客户端不想等待,他单击Ajax再次链接,再次将请求发送到服务器,再次出错
- 渲染我们的网站在浏览器中,因为我们给额外的加载到浏览器。
- 如果第二个请求处理正确,您显示用户页面,然后出现来自第一个页面的错误消息请求(表示请求超时)在正确的情况下加载上面
如果Ajax函数被调用两次,我想停止第一个Ajax响应。我该怎么做呢?
所以我想停止第一个Ajax响应,如果Ajax函数被调用两次
你真正想要的是在第一个请求正在进行时防止第二个请求。
例如,您可能必须将Save
按钮更改为Saving...
,禁用它(并添加一个小进度轮)以向用户提供实时反馈。(Facebook就是这么做的)
关键是爱反馈给用户。如果用户不知道发生了什么,他们会认为什么也没发生。
您可能想要检查为什么操作需要很长时间
- 如果这是一个复杂/耗时的操作,比如生成报告或上传文件,那么应该使用进度条
- 如果这是由于客户端的互联网连接,说它前面,像Gmail: 你有一个缓慢的互联网连接,这个网站可能会很慢。更好的是,提供一个后备选项,使用更少/没有Ajax。
- 你说是因为我们给了浏览器额外的负载:这有点可疑。你不会给额外的加载给浏览器,除非你给它大量的HTML来渲染。仅在浏览器上的小更新中使用Ajax。如果您希望有较大的更改,您可能需要重新加载页面。
如果您开始使用某种形式的JavaScript,那么该链接要么被隐藏,要么被禁用,直到页面请求被执行。例如,您可以让请求的ajax等待第二个变量,该变量将启用该链接,以便用户可以单击它。但是,在从原始AJAX请求接收到该变量之前,它将禁用单击,然后如果单击它,它将再次禁用并等待相同的变量再次返回。
想想有些开发人员如何禁用表单上的提交按钮,这样用户就不能重复提交表单。这里的概念是一样的
相关文章:
- 如何在不使用multipleparent()调用的情况下找到(元素表的)第一个祖先
- 函数在使用 webkit 加载的第一个页面时调用
- Angular 2:当第一个服务成功时,两个后端服务调用
- Javascript Promise().然后防止在执行第一个调用之前重新调用该函数
- 为什么在给出第一个结果后仍然调用此方法
- 在文件中调用函数,而被调用的函数调用第一个文件中的另一个函数
- 为什么当我调用 Meteor.setTimeout() 时,我后续的 Meteor 方法调用不会等待第一个方法完成
- 并行 AJAX 调用 - 无法接收来自第一个的响应
- 加载调用仅适用于第一个节点,不适用于叶
- 第一个角度$http POST 落入 .then 错误路径,即使 REST 调用成功
- 节点异步仅在 node-lambda 内部调用第一个函数
- 如何在窗体/窗口加载时使用角度引导程序调用函数以显示第一个选项卡的动态内容
- AngularJS + Ionic - 如何从第一个控制器调用第二个控制器上的方法
- Javascript 函数返回 value.根据第一个函数返回值调用另一个函数
- 第二个 AJAX 调用卸载第一个的结果
- Angular $q.all 在第一个承诺完成后被调用
- React/Redux+超级代理,第一个调用被终止
- 为什么XMLHttpRequest.abort会阻止除循环内部的第一个调用之外的所有Ajax调用
- 如果第一个ajax请求在第一个调用获得响应之前再次被调用,如何停止第一个ajax请求
- 第二个ajax调用不工作,第二个应该在第一个调用成功后才调用