javascript - 防止同一请求多次完成

标签 javascript asp.net-mvc-3

我有一个在工厂内部网中运行的 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/

相关文章:

c# - 从 Controller 发送图像以在 MVC3 中查看

javascript - 在 IE 中 Javascript 的执行速度比 Firefox、Safari 和 Chrome 慢

javascript - 隐藏和显示功能不起作用

javascript - 淡化域之间的页面转换

javascript - 在更改下拉菜单后将文本放置在 td 中

c# - 如何在 ASP 中使用 JavaScript 使用 DropDownList 的值填充 TextArea

asp.net-mvc-3 - Mvc-Ajax : Submit button not working, 在现有的html表中显示返回的结果

asp.net-mvc-3 - 从 JsonResult 在 MVC3/Razor 中动态显示表/列表数据?

javascript - Clojurescript - 从匿名函数 promise 回调中重复出现

asp.net-mvc-3 - 将 ReCaptcha 与 MVC3 和 razor 一起使用?