1:当然首选 token 但是当要做去效果的时候。可以用JS来实现
2:把按钮灰色了。直接obj.disable=true
3:这种方法是让整个页面的被一个div占据,中间给令一个去一直执行方框。显示正在保存,这个方法还可以用来输入用户名和密码。提交后redirect到这个页面的action就可以了。这个方法一直到该action结束才会结束。
<div id="savingPanel" align="center" style="z-index: 100000; display: none; top: 0; left: 0; filter: Alpha(Opacity=50); width: 100%; height: 100%; position: absolute; background-color: #B6CAFD;"></div>
<div id="savingText" align="left" style="z-index: 100000; padding-left: 8; display: none; top: 0; left: 0; height: 24; width: 168; position: absolute; background-color: #B6CAFD; border-style: solid; border-width: 1; border-color: #4A8CE2;">正在保存数据,请稍候......</div>
<script type="text/javascript">
var isSaving = false;
var savingPanel = document.getElementById("savingPanel");
var savingText = document.getElementById("savingText");
var count = 0;
function startShowDataIsSaving()//直接调用
{
isSaving = true;
savingPanel.style.display = "block";
savingText.style.display = "block";
showDataIsSaving();
showDataIsSavingText();
}
function endShowDataIsSaving()
{
isSaving = false;
savingPanel.style.display = "none";
savingText.style.display = "none";
}
function showDataIsSaving()
{
if(isSaving)
{
savingPanel.style.height = document.body.scrollHeight;
savingPanel.style.width = document.body.scrollWidth;
savingText.style.top = document.body.scrollTop + document.body.clientHeight / 2 - 12;
savingText.style.left = document.body.scrollLeft + document.body.clientWidth / 2 - 84;
setTimeout(showDataIsSaving);
}
}
function showDataIsSavingText()
{
if(isSaving)
{
savingText.innerHTML = "正在保存数据,请稍候.";
for(var i = 0; i < count; i++)
{
savingText.innerHTML += ".";
}
count++;
count = count % 5;
setTimeout(showDataIsSavingText, 150);
}
}
</script>
分享到:
相关推荐
下面详细介绍几种常用的防止重复提交的方法: ##### 方法1:使用HTTP头部控制 可以在JSP页面的`<head>`部分加入以下代码,通过设置HTTP头部来禁止浏览器缓存当前页面: ```html , must-revalidate"> , 26 Feb 1997...
下面详细解释几种防止Layui表单重复提交的方法。 首先,在HTML表单中,为了避免在提交时页面刷新导致的重复提交,可以在标签中使用onsubmit="return false;"属性。这个属性的作用是在表单提交时返回false,阻止...
Struts2作为一个流行的Java Web框架,为解决表单重复提交提供了多种方法。 首先,关于表单重复提交的原因,有以下几点: 1. 服务器或网络延迟导致用户多次点击提交按钮。 2. 用户在表单提交后刷新浏览器页面。 ...
以下是几种防止表单重复提交的策略,它们可以在不同的应用场景中发挥作用。 1. 禁用提交按钮 在表单提交之后,通过JavaScript使提交按钮变为不可用状态。这种方法简单,可以在用户提交表单后立即阻止他们再次点击...
在Servlet中,通常采用几种方法来避免重复提交: 1. **Session状态管理**:在接收到用户提交请求后,可以在Session中设置一个标志,如"formSubmitted",然后在后续的请求中检查这个标志,如果已存在则忽略请求。 2...
Token机制是一种常用的防止表单重复提交的技术方案。其基本思想是在用户提交表单时,服务器会生成一个唯一的Token并将其存储在客户端(如通过Cookie或隐藏字段),同时也会在服务器端存储一份。当用户提交表单时,...
总结,PHP解决表单重复提交的方法多样,可以根据实际需求和应用场景选择合适的方法。JavaScript禁用按钮和Header函数跳转相对简单,但依赖客户端;Session和Cookie在服务器端处理,更安全,但可能受到客户端限制;...
要彻底解决表单重复提交的问题,有以下几种策略: - **禁用表单按钮**:在表单提交后,禁用提交按钮,防止用户点击多次。 - **使用POST/REDIRECT/GET模式**:在处理POST请求后,使用`sendRedirect()`重定向到一个新...
Struts通过几种策略来解决这个问题: 1. **令牌(Token)机制**:在用户提交表单时,服务器会生成一个唯一的令牌并将其存储在用户的会话(session)中,同时将令牌隐藏字段放入表单。当用户再次提交表单时,服务器...
防止表单重复提交的常见策略有以下几种: 1. **客户端验证**:在JavaScript中,可以监听表单提交事件,一旦表单提交,禁用提交按钮,防止用户再次点击。但这种方法并不完全可靠,因为JavaScript可以被禁用,或者...
在Struts2框架中,防止重复提交可以通过以下几种方式实现: 1. **使用Token机制**: - 在表单中加入一个隐藏字段(如`<s:token />`),每次提交表单时都会包含这个token值。 - 服务器端在接收到请求后会验证这个...
以下是几种常见的解决方法: 1. **客户端脚本控制**: 使用JavaScript可以有效地防止用户在提交表单后因刷新页面而再次提交。一种方式是在提交按钮的`onClick`事件中,将按钮禁用并改变其值,让用户知道提交正在...
总的来说,Struts2的Token机制是一种有效防止表单重复提交的方法,它通过生成和验证唯一标识来确保每个请求的唯一性,从而保护了业务的正确性和数据的一致性。在实际开发中,根据项目需求和安全策略,我们可以灵活...
重复提交的现象主要有以下几种情况: 1. 用户在网络不稳定时点击了多次提交按钮。 2. 提交成功后,用户刷新了成功页面(通常是通过HTTP的请求转发,forward)。 3. 提交成功后,用户点击浏览器的回退按钮,然后再次...
本文将详细介绍PHP中防止表单重复提交的两种实现方法。 ### 前端解决方案 前端解决方案依赖于客户端的JavaScript以及CSS样式来实现。这种方法的优点是减少服务器的负担,缺点是安全性相对较低,因为客户端的代码有...
本文将详细介绍几种在ThinkPHP中防止表单重复提交的方法,并分析其原理和实现。 1. 页面跳转法:这是最简单直接的方法,通过在表单提交后将页面重定向到一个新的地址,而不是返回原页面。这样用户即使点击了后退...
Truts2提供了几种防止重复提交的方法: 1. **令牌(Token)机制**:Truts2的令牌拦截器(TokenInterceptor)是常用的防御手段。它会在用户提交表单时生成一个唯一的令牌,将其存储在session中,并附加到表单隐藏...
这个名为"springboot防重复提交工具包"的资源很可能提供了一种解决方案,帮助开发者防止用户因网络延迟或其他原因导致的多次点击提交,从而避免数据库中的数据异常。 Spring Boot是基于Spring框架的轻量级开发工具...