我有一个.NET应用程序,通过AJAX调用访问位于处理程序上的方法。通常,当用户单击某些按钮时,会触发此AJAX调用。当用户多次单击按钮时,我的问题就出现了。它弄乱了我所有物体的状态。
你如何照顾它?我知道我可以阻止用户点击直到第一个呼叫结束,但我想找到一个解决方案来处理服务器端的这个问题。有什么想法吗?
谢谢!
答案 0 :(得分:1)
在onclick方法中,删除按钮的onclick处理程序,然后使用setTimer在后台运行ajax调用,并返回true ...
当ajax完成时,您可以选择重新附加onclick处理程序。
答案 1 :(得分:1)
我相信这是使用客户端代码最好的方法。如果您使用的是jQuery,那么one()可能是一个优雅的解决方案。或者,您可以在启动请求时将变量设置为true,并在完成时将其设置为false。然后在变量设置为true时阻止所有进一步的请求。
执行服务器端将无法正常工作。服务器可能已完成处理,但消息尚未到达客户端。然后客户端发出新请求。服务器对它作出反应,因为它是一个新的。在这种情况下可能会发生浩劫。
答案 2 :(得分:0)
使用jquery blockUI插件。 当用户第一次点击按钮然后锁定用户页面。 完成用户任务后,取消阻止该页面。