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

时间:2010-01-18 11:01:59

标签: jquery ajax methods handler

我有一个.NET应用程序,通过AJAX调用访问位于处理程序上的方法。通常,当用户单击某些按钮时,会触发此AJAX调用。当用户多次单击按钮时,我的问题就出现了。它弄乱了我所有物体的状态。

你如何照顾它?我知道我可以阻止用户点击直到第一个呼叫结束,但我想找到一个解决方案来处理服务器端的这个问题。有什么想法吗?

谢谢!

3 个答案:

答案 0 :(得分:1)

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

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

答案 1 :(得分:1)

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

执行服务器端将无法正常工作。服务器可能已完成处理,但消息尚未到达客户端。然后客户端发出新请求。服务器对它作出反应,因为它是一个新的。在这种情况下可能会发生浩劫。

答案 2 :(得分:0)

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

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