我有一个在工厂内部网中运行的 ASP.NET MVC3 应用程序。工厂使用 Internet Explorer,最终用户有点不耐烦。在我向数据库添加新对象的页面中,Explorer 没有快速响应并且用户重新按下添加按钮,因此同一个对象被插入了两次。我正在考虑防止它发生的方法。
我编写了一个脚本,使按钮在按下后不可见,但我想让它不起作用。是否有这样的 javascript 函数或服务器端实现使提交按钮不起作用?
最佳答案
客户端“不工作”:
我会说禁用
document.getElementById("btnAdd").disabled = true;
比仅仅让它不可见更安全。最重要的是,考虑添加来自 http://www.ajaxload.info/ 的 GIF 形式的加载动画。以便用户知道他们必须等待。
理想情况下,您将进行 ajax 调用,并且可以在操作失败或返回消息时重新启用该按钮。
最坏的情况是,您可以从页面中完全删除该按钮,但如果操作失败并且用户需要再次按下它,这不是一个好主意。
服务器端“不工作”:
在数据库级别,捕获并拒绝重复项(根据您的标准)以确保即使它们确实漏掉了一次,您也不会得到重复数据。
关于javascript - 防止同一请求多次完成,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18278829/