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

判断浏览器是刷新还是关闭窗口 当浏览器退出时会触发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

 

第八章 GPU Scheduler 分析:8.3 drm_sched_entity — 调度实体 本文介绍了DRM GPU调度器中的drm_sched_entity结构,它作为用户提交命令进入调度器的提交通道,解决了归属、排序和公平性问题。文章首先分析了命令提交的归属需求,然后详细阐述了entity的核心模型,包括其职责、进程映射关系和核心字段。接着说明了用户态提交进入内核后的关键节点路径,以及entity内部的FIFO语义和激活机制。entity通过组织同一context的命令提交包为FIFO队列,使调度器能够在多个entity之间进行优先级和公平性调度,同时保证同一提交通道的顺序执行。 阅读详情

相关推荐

openEuler在虚拟机的网络配置

ethernet0.virtualDev 可以配置成其他类型的虚拟网络适配器。常见的选项包括:vlance - 用于模拟 AMD PCnet32 LANCE 网络适配器,支持10Mbps。e1000 - 用于模拟 Intel E1000 千兆网络适配器,支持1Gbps。e1000e - 用于模拟更现代的 Intel E1000e 千兆网络适配器。vmxnet - 用于 VMware 的自定义网络适配器,性能更好但需要安装 VMware Tools。

FHY1221的博客 2928

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

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

诸子百家 3131

Win7运行豆包桌面版的兼容性原理与实操方案

Windows 7作为已停止主流支持的操作系统,其与现代Electron应用的兼容性问题本质是API层面的系统调用断层。Electron 28+依赖的GetSystemTimePreciseAsFileTime、SetThreadDescription等Windows 10专属API,在Win7 SP1中天然缺失,导致‘无法定位程序输入点’等典型错误。解决路径并非简单打补丁,而是需理解底层ABI差异、补丁堆叠边界及动态API转发机制。关键技术价值在于通过兼容层(如VxKex NEXT)或运行时降级(Elec

weixin_33290540的博客 1321

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

<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

手把手教你用GNU Radio和PlutoSDR搭建FM收音机(附完整流程图)

本文提供了一份详细的实践指南,教你如何使用GNU Radio和PlutoSDR搭建一个功能完整的FM收音机。从软硬件环境准备、核心流程图构建,到运行调试与效果优化,手把手带你完成从射频信号接收、下变频、FM解调到音频输出的全过程,是入门软件定义无线电(SDR)的绝佳实践项目。

weixin_29189377的博客 748

基于Meteoinfo与TrajStat的后向轨迹聚类分析实战:从数据准备到可视化制图

本文详细介绍了基于Meteoinfo与TrajStat进行后向轨迹聚类分析的完整实战流程。从Java环境配置、Meteoinfo软件与TrajStat插件安装,到精准获取NOAA气象数据、设置参数进行批量轨迹计算,再到利用聚类分析提炼主要气流路径,并最终完成专业地图可视化与制图。文章旨在帮助环境与气象研究者快速掌握从数据准备到成果输出的全链路操作。

p4q5r6s7t的博客 804

前端面试题

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

SpringAi 通过大模型来实现调用自己的Api

摘要 本文介绍了如何利用Spring AI的Tools机制扩展大模型能力,实现业务系统集成。通过@Tool和@ToolParam注解定义工具方法,将订单查询和关闭功能暴露给大模型调用。关键实现包括:1)使用详细描述标注工具方法和参数;2)在ChatClient中注册工具服务;3)集成对话记忆保持上下文。该方法使AI具备操作业务系统的能力,形成"认知-决策-执行"闭环,大幅提升了模型在实际业务场景中的应用价值。

又要搬砖了 835

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

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

Museions的开心博客 2606

【专栏必读】王道考研408计算机组成原理万字笔记使用说明及章节导航

本文是为准备408王道计算机组成原理考试的学生精心整理的万字笔记,涵盖了从计算机系统概述、数据表示和运算到存储系统、指令系统等多个章节的重点内容。本文强调了学习笔记的重要性,并分享了学习建议,如按视频课逻辑记录,建立学科框架。笔记详细记录了每章的关键知识点,包括存储器、CPU、I/O系统的工作原理,还附带了习题和思维导图,旨在帮助考生高效复习。

快乐江湖的博客 9万+

openclaw通俗入门系列4——智能体工作区

工作区 = 智能体的家,存放它的性格、记忆、技能。默认不是牢笼(可以用沙箱隔离)。建议放到私有 Git 备份,但绝对不要提交密钥!

m0_60605453的博客 462

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

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

weixin_42682011的博客 2万+

【A_Star三维路径规划】基于matlab A_Star算法结合B样条平滑三维地形路径规划(含雷达威胁)【含Matlab源码 3527期】

A_Star算法结合B样条平滑三维地形路径规划(含雷达威胁) 完整代码,包运行;可提供运行操作视频!适合小白!

订阅付费专栏Matlab(奶茶价版),可赠送奶茶价版付费专栏指定代码1份; 740

预防"提交"按钮的多次点击-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

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

lwip-2.0.3

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

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

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

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

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

【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

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

预防按钮的多次点击

今日在做一个新闻系统的评论时. 想到了预防"提交"按钮的多次点击的问提 (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、付费专栏及课程。

余额充值