多次点击浏览器上的按钮,向服务器发送多个请求。
解决问题的最简单方法是停止通过JavaScript多次点击浏览器。
有人可以提出一些更好的方法来解决它吗?
为了方便,我将提供垃圾设计概述
浏览器---到---> WEB [所有控制器] ----至 - >休息呼叫服务。
添加更多信息: 注意:我们正在发送CSRF令牌
第1步:我们在/ page / show - GET
第2步:我们发布表单/ page / show -POST [包含在其中的srf令牌]
第3步:成功完成保存,我们再次重定向到/ page / show
谢谢
答案 0 :(得分:0)
有两种方法可以解决这个问题
为什么不在单击按钮时禁用按钮并显示一些加载gif。加载gif对于告知用户正在发生的事情非常重要。
如果您想在按钮后点击用户根本不能与页面进行交互,那么创建一个背景颜色为灰色且具有一定不透明度的div,以便用户能够看到后面的页面并增加它的z索引使其位于顶部,从而阻止用户与页面交互。 (您也可以使用相同的技术在side div中添加加载gif图标)
如果你想采取第二种方法,这里有一个小例子让你去
css for the div
#overlay {
position: fixed;
top: 0;
left: 0;
width: 100%;
height: 100%;
background-color: #000;
filter:alpha(opacity=50);
-moz-opacity:0.5;
-khtml-opacity: 0.5;
opacity: 0.5;
z-index: 10000;
}
//function to show overlay
function ShowOverLay(){
var overlay = $('<div id="overlay"> </div>');
overlay.appendTo(document.body)
}
//function to hide overlay
function DeleteOverLay(){
$('.overlay').remove();
}
//function to get data
function GetData(){
//at first show the overlay
ShowOverLay()
//now make an ajax call
$.ajax({
url: url,
data: data,
success: function(data){
if(data){
//some processing with data if successfull
//hide the overlay now
DeleteOverLay();
}
},
dataType: dataType
});
}