代码之家  ›  专栏  ›  技术社区  ›  tucaz

如何避免多次调用Ajax方法?

  •  3
  • tucaz  · 技术社区  · 15 年前

    我有一个.NET应用程序可以通过Ajax调用访问位于处理程序上的方法。通常,当用户单击某些按钮时,就会触发此Ajax调用。当用户多次单击按钮时,就会出现我的问题。它把我的目标状态搞得一团糟。

    你怎么处理?我知道我可以阻止用户单击直到第一次调用结束,但我想在服务器端找到解决方案来处理这一问题。知道吗?

    谢谢!

    3 回复  |  直到 15 年前
        1
  •  1
  •   kgiannakakis    15 年前

    我相信这是最好的实现使用客户端代码。如果您正在使用jquery,那么 one() 可能是一个优雅的解决方案。或者,可以在启动请求时将变量设置为true,并在完成后将其设置为false。然后在变量设置为true时阻止所有进一步的请求。

    做IT服务器端是行不通的。服务器可能已完成处理,但消息尚未到达客户端。然后客户机发出一个新的请求。服务器对它做出反应,因为它是一个新的。这样的情况下可能会发生大破坏。

        2
  •  1
  •   jspcal    15 年前

    在onclick方法中,删除按钮的onclick处理程序,然后在后台用settimer运行ajax调用,并返回true…

    当Ajax完成时,您可以选择重新附加onclick处理程序。

        3
  •  0
  •   Vicky    15 年前

    使用jquery blockui插件。 当用户第一次点击按钮时,锁定用户页面。 完成用户任务后,取消阻止页面。

    参考 http://malsup.com/jquery/block/#