预防"提交"按钮的多次点击

判断浏览器是刷新还是关闭窗口 当浏览器退出时会触发onunload事件,因此我们可以使用onunload事件做一些在页面关闭时要执行的操作,如提示用户信息等。但或许在实际应用中我们都发现一个问题,刷新浏览器同样会触发onunload事件,也就是只要是离开该页面就会触发onunload事件,或许刷新时我们并不想执行onunload定义的操作,或者我们只想在刷新时执行某操作,这样我们就遇到了一些麻烦。 立即下载
Google,找到了一些代码,自己修改了一下。主要参考老猫'blog.

public void  page_load(Object obj,EventArgs e) 
{ 
  btn.Attributes.Add(
"onclick","state=true;"
); 
  StringBuilder sb
=new
 StringBuilder(); 
  sb.Append(
"if (!state) return;"
); 
  sb.Append(
"var button=document.getElementById('btn');"
); 
  sb.Append(
"button.value=" Please Wait... ";"
); 
  sb.Append(
"document.body.style.cursor='wait';"
); 
  sb.Append(
"button.disabled=true;"
); 

 
string strScript="<script>"
; 
 strScript
=strScript +"var state=false;"
; 

 
//将函数绑定到页面的onbeforeunload事件: 

 strScript=strScript +"window.attachEvent('onbeforeunload',function(){" +sb.ToString()+ "});"; 
 strScript
=strScript +"</"+"script>"
; 
 Page.RegisterStartupScript(
"onbeforeunload"
,strScript); 
}
 

private void Submit_Click(Object sender, EventArgs e)
{ 
  
//模拟长时间的按钮处理 

  System.Threading.Thread.Sleep(3000); 
  Response.Write(
"<script>alert(xxx!!');"+"</"+"script>"
); 

}
 

<asp:button id="btn" Text="Submit" OnClick="Submit_Click" runat="server"/>


修改好的这个例子原理是提交后将按钮置于一定时间的无效状态. 
仅能防止一些,因网速慢而心急的用户造成的误点击. 
对于恶意的多次刷新而形成的多次提交还是没有办法解决. 
(不过应该可通过页面的onbeforeunload事件解决) 

 

如何在用户关掉web浏览器窗口前, 进行相应的动作

参考 maison 'blog


长期以来, 做Web项目, 总会头疼这个问题.
用户不进行注销或者退出功能, 直接关闭了浏览器.
或者用户在进行输入操作时, 误点了一个链接, 跳转到其它页面, 造成输入数据的丢失.

今天发现了onbeforeunload事件,它是这样用的:

<script language="javascript">
  g_blnCheckUnload 
= true ;
  
function RunOnBeforeUnload() 
{
     
if
 (g_blnCheckUnload) 
   
{//注意异常的捕获
     try{
       window.event.returnValue 
= 'You will lose any unsaved content'
;   
            }
catch(e){}
      }
 

  }

</script>
<body  onbeforeunload="RunOnBeforeUnload()">
</body>


这样每次关闭浏览器窗口或涮新页面时,都要触发onbeforeunload这个事件,这样可以对用户进行提示,避免不必要的遗憾。

我上网又查了一些这个事件的用法,感觉还是
http://www.surfchen.org/?p=54这篇写得最清楚了,摘抄如下:

onbeforeunload事件: 
注:三大主流浏览器中firefox和IE都支持onbeforeunload事件,opera尚未支持。

用法:

object.onbeforeunload = handler <element onbeforeunload = “handler” … ></element> 描述:
事件触发的时候弹出一个有确定和取消的对话框,确定则离开页面,取消则继续待在本页。
handler可以设一个返回值作为该对话框的显示文本。

触发于:

  • 关闭浏览器窗口
  • 通过地址栏或收藏夹前往其他页面的时候
  • 点击返回,前进,刷新,主页其中一个的时候
  • 点击 一个前往其他页面的url连接的时候
  • 调用以下任意一个事件的时候:click,document write,document open,document close,window close ,window navigate ,window NavigateAndFind,location replace,location reload,form submit.
  • 当用window open打开一个页面,并把本页的window的名字传给要打开的页面的时候。
  • 重新赋予location.href的值的时候。
  • 通过input type=”submit”按钮提交一个具有指定action的表单的时候。

可以用在以下元素:
BODY, FRAMESET, window

 

大规模新闻聚合爬虫实战:Python爬取数百万新闻数据的完整指南 本文详细介绍了如何构建一个大规模新闻聚合爬虫,结合Python异步爬虫技术,实现高效、稳定的新闻数据采集。增加NLP模块对新闻内容做自动分类、情感分析。引入机器学习模型检测新闻真实性。使用分布式爬虫框架进一步提升规模。增加多媒体内容抓取与处理。 阅读详情

相关推荐

AT32F403A ADC通道管理与转换模式实战解析

本文深入解析AT32F403A微控制器的ADC模块,重点阐述其通道管理机制与四种转换模式(序列模式、抢占自动转换模式、反复模式、分割模式)的实战应用。通过详细的配置步骤与代码示例,帮助开发者高效实现模拟数字转换,优化数据采集性能与系统响应。

sky77的博客 278

如何在用户关掉web浏览器窗口前, 进行相应的动作

参考 maison blog 长期以来, 做Web项目, 总会头疼这个问题.用户不进行注销或者退出功能, 直接关闭了浏览器.或者用户在进行输入操作时, 误点了一个链接, 跳转到其它页面, 造成输入数据的丢失.今天发现了onbeforeunloa

诸子百家 3131

11n、11ac、11ax和11be MCS表(全网最全)

1、无线协商速率介绍及计算 2、附11n、11ac、11ax 完整MCS速率表

weixin_41500064的博客 2万+

在关闭网页之前可以进行的一些操作

<br />点击IE浏览器右上角的小叉,关闭IE浏览器同时,执行一个操作,比如删除数据库中的数据。   <br />  偶知道可以用body的onUnload事件,但这个事件在网页刷新时也做这个操作,我不想这样,不知道是否还有其他的解决方案?   <br />    <br />  <br /><br />以下为回复:  <br /><br />1楼 2002-07-22 07:08 emu  [引用] [回复]  <br /><br />在服务器端监视当一个连接失效时做操作. <br /><br /><b

CYSONG168的专栏 878

Python邮件自动化实战:基于imaplib和email库的高效邮件管理方案

本文详细介绍了如何使用Python的imaplib和email库实现高效邮件自动化管理。通过实战案例展示自动收取、解析邮件、下载附件等核心功能,帮助开发者快速构建企业级邮件处理系统,大幅提升工作效率。特别适合需要处理大量邮件的金融、数据分析等场景。

weixin_30500105的博客 618

【XR技术介绍】深度解析|AI眼镜核心技术架构:从硬件层到端云AI全链路拆解

本文将逐层拆解AI眼镜完整技术架构,梳理硬件、感知、光学、端侧AI、软件云端五大核心层级,剖析核心数据流与行业技术瓶颈,同时附上标准化技术架构图,适合技术学习、方案汇报、行业科普使用。

houdou112358的博客 431

前端面试题

audio,video(source标签定义type属性)属性:src(音频或视频链接),width,height,controls(显示控件)input新增输入类型:date,color,month,email,tel,url等新增表单元素:keygen(公钥私钥),datalist,progress,meter,output新增表单属性:placeholder,min/max,pattern,required,width,height,multitype等 来设置此元素是否可以进行拖拽操作拖拽元素的事件

weixin_46299623的博客 895

【异常】OpenClaw报错 400 Total tokens of image and text exceed max message tokens. Request

OpenClaw报错400(Token超限)解决方案摘要 该报错因文本/图片总Token数超过模型限额导致,常见于多轮对话累积或单次请求过大。提供三级解决方案: 应急处理:输入"/new"指令清空会话历史,立即重置Token计数(90%问题可解决) 折中方案:保留历史对话前提下,通过精简当前输入、删除早期无关对话或拆分请求来压缩Token 专属处理:单次请求超限时,拆分长文本为2000字以内段落,或分批次上传降低分辨率图片 长期预防建议定期使用"/new"开启新会话,

奶爸的编程之路,也就一周冷个三天 1389

浏览器关闭或刷新向后台提交数据(实用解决方法)

浏览器关闭刷新提交数据 以下方法在IE11和Chrome中得到验证 准备工作:安装好可以打断点的工具 配置好一个后台地址,确保在浏览器中能够访问 最好是chrome浏览器 网上大神们提供的方法很好,但是没有说清楚,什么console,alert的,应该是实现了,但是却看不到效果 好了开始代码了: IE11,Chrome window.onbeforeunload = function(){ ....

Museions的开心博客 2606

论文必备 - YOLOv11热力图可视化,支持指定模型,指定显示层,设置置信度,以及10种可视化实现方式

本文带来的是YOLOv11热力图可视化功能,支持,以及。我们经常看到一些论文里绘制了不同的热力图,一方面能够直观的感受其模型的有效性,另一方面也丰富了论文内容。特别是在使用了注意力模块的网络中,热力图就可以验证注意力机制是否真正聚焦到了预期的重要特征上,以便对模型的有效性和合理性进行评估。例如这篇文章中展示的,就很能够表达作者改进后的模型相比之前模型的优越性。

Limiiiing的博客 5503

基于Simulink的间接功率控制的矩阵变换器

通过上述步骤,我们成功设计并实现了基于 Simulink 的间接功率控制的矩阵变换器仿真模型。该模型能够通过控制输入电流和输出电压,实现对功率的间接控制,适用于电机驱动、可再生能源系统、电力传输等领域。通过虚拟场景仿真、参数优化和性能评估,验证了系统的稳定性和高效性,并通过调整 PI 控制器参数和优化调制算法,进一步提升了系统的性能。

MHD0815的博客 295

vue监听浏览器刷新和关闭事件,并在页面关闭/刷新前发送请求

vue监听浏览器刷新和关闭事件,并在页面关闭/刷新前发送请求1.需求背景:2.需求分析:3.实现方式:4.实现方式解析:1)浏览器页面事件基础2)在mounted监听beforeunload和unload事件5.存在的问题/风险点:1)为了避免意外弹出窗口,在页面加载完毕的情况下,用户没有click、dbclick、touch等主动交互行为,直接执行关闭/刷新操作是不会弹出提示框的;2)浏览器提示框的样式和内容是默认的,不能更改;3)在关闭/刷新页面前发送的请求,如果使用axios方式,由于是异步的,在执行

weixin_42682011的博客 2万+

网络安全 | 企业网络安全的十大挑战及解决方案

网络安全 | 企业网络安全的十大挑战及解决方案,随着信息技术的飞速发展,企业数字化转型进程不断加速,网络安全问题日益成为企业运营与发展面临的关键挑战。本文深入剖析企业网络安全的十大挑战,包括网络攻击日益复杂、数据泄露风险、内部威胁、物联网安全、云安全、合规性要求、移动办公安全、供应链安全、人才短缺以及安全预算有限等,并针对每个挑战详细阐述相应的解决方案,旨在为企业构建全面、有效的网络安全体系提供指导与参考,助力企业在复杂多变的网络环境中保障自身信息资产安全,实现可持续发展。

不踩坑,不知道坑有多深;不总结,踩过的坑白踩。 4万+

预防"提交"按钮的多次点击-onbeforeunload事件

Google,找到了一些代码,自己修改了一下。主要参考老猫blog.public void page_load(Object obj,EventArgs e) {   btn.Attributes.Add("onclick","state=true;");   StringBuilder sb=new StringBuilder();   sb.Append("if (!state) retur

johncools的博客 1133

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

预防按钮的多次点击【恶意刷新】

今日在优快云论坛上评论到这样的标题时,想到了该怎么解决预防"提交"按钮的多次点击的问题【prevent multiple clicks of a submit button in ASP.NET】,如果要是记录到数据库那不是很好的办法,该怎么办呢?想来想去我以前做过到这样的,不过之前是别的办法,今天在通过查讯Google,找到了一些代码,挑选一些较好的修改了一下:不过,我个人认为对于恶意的刷

深海软件信息技术服务网【云中*深海】 1282

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

【KMS】如何预防用户多次点击提交按钮

如何避免页面多次提交? How to prevent user clicking on submit button for mutiple times? In general, we can use javascript below to implement it. We need to run js functionpostRender(this) in web page's onload ...

weixin_30376323的博客 77

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

预防按钮的多次点击

今日在做一个新闻系统的评论时. 想到了预防"提交"按钮的多次点击的问提 (prevent multiple clicks of a submit button in ASP.NET). 以前碰到此类问提总是用重定位页面来解决. 这次我想找到一个一劳永逸的办法. 通过查讯Google,找到了一些代码,挑选一些较好的修改了一下。 public void pag...

weixin_30486037的博客 96
上一篇: C# 2.0中泛型编程初级入门教程
下一篇: 正则表达式--常用的
justmuch
博客等级 码龄21年 51粉丝 10原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值