2011-08-21 248 views
1

可能有一些情况下,您的请求需要很长时间,因为您的客户端Internet连接或您的服务器 连接的某些问题的 。如此以来,客户不希望等待他点击阿贾克斯 链路上再次,再次将请求发送到服务器,弄乱 如下:在浏览器中我们网站的如何在第一次调用获得响应之前再次调用第一个Ajax请求?

  1. 渲染,因为我们给额外 加载到浏览器。
  2. 如果第二次请求正确处理和你表明用户 的页面,然后从第一 请求一起错误信息出现(话说请求超时),它上面装载的正确 内容和乱用用户阅读正确的内容。

如果Ajax函数被调用两次,我想停止第一个Ajax响应。我该怎么做呢?

+0

请在发布之前进行拼写检查。另外,您可能希望在发布之前阅读您的问题。 – Nivas

回答

4

,所以我想停止第一Ajax响应,如果阿贾克斯函数被调用 两次

你真正想要的是防止第二次请求时,第一请求正在进行中。

例如,您可能必须将Save按钮更改为Saving...,将其禁用(并添加一点进度轮),以向用户提供实时反馈。 (Facebook做到这一点)

关键是爱给用户反馈。如果用户对发生的事情无能为力,他们会认为没有任何事情发生。

你可能要检查该操作为何正在长

  • 如果这是一个复杂的/耗时的操作,比如,说一个报告生成或文件上传,进度条应该做
  • 如果这是因为客户端的互联网连接,请提前说出,例如Gmail:您的互联网连接速度较慢,而且该网站可能很慢。更好的是,提供一个fallback选项,少用/不用Ajax。
  • 你说因为我们给浏览器增加了额外的负载:这有点可疑。除非您提供大量的HTML来呈现,否则您不会向浏览器提供额外的加载。仅在浏览器上使用Ajax进行小型更新。如果您希望发生重大变化,您可能需要重新加载页面。
+0

这正是我的团队用我们的网络应用程序所做的,如果他们必须等待(罕见)禁​​用并显示“正在工作”通知。好建议。 –

0

如何看待你使用某种形式的JavaScript开始你有一个隐藏或禁用在讲话庄园直到页面请求的链接已经遵循。例如,您可以让请求的Ajax等待第二个变量,该变量将启用该链接,以便用户可以点击它。但是,直到该变量从原始AJAX请求收到它禁用点击,然后如果它被点击它再次禁用,并等待相同的变量再次回来。

想想一些开发人员如何禁用表单上的提交按钮,以便用户无法双击提交表单。这里概念的相同概念。

相关问题