防止同一个请求不止一次

时间:2013-08-16 17:18:17

标签: javascript asp.net-mvc-3

我有一个在工厂内部网中运行的ASP.NET MVC3应用程序。工厂使用Internet Explorer和最终用户有点不耐烦。在我向数据库添加新对象的页面中,资源管理器不会快速响应,用户重新按下添加按钮,因此会插入两次相同的对象。我正在考虑如何防止它。

我写了一个脚本,按下按钮后按钮不可见,但我想让它不起作用。是否有这样的javascript函数或服务器端实现,使提交按钮不起作用?

1 个答案:

答案 0 :(得分:3)

“不工作”客户端:

我会说禁用

 document.getElementById("btnAdd").disabled = true; 

比仅仅让它看不见更安全一点。最重要的是,考虑从http://www.ajaxload.info/以GIF的形式添加加载动画,以便用户知道他们必须等待。

理想情况下,您将进行ajax调用,并且如果操作失败或返回消息,则可以重新启用该按钮。

最糟糕的情况是,您可以完全从页面中删除该按钮,但如果操作失败并且用户需要再次按下它,那不是一个好主意。

“不工作”服务器端:

在数据库级别,捕获并拒绝重复项(符合您的标准),以确保即使他们过了一次,也不会有重复数据。