微前端架构如何改变企业的开发模式与效率提升
567
2022-11-02
struts2造成的多次提交和ajax调用不进入后台问题发现和解决
1.struts2多次提交
这种情况发生在网络较慢时,现象是前端ajax调用一次struts2接口,因为网速较慢,struts2自动调用了多次某接口。这种情况对于提交操作很要命,会出现以下两种情况造成体验差: 1.显示失败,实际成功(发生在首次提交失败,后续成功的情况,后续成功不会返回前端正确数据) 2.显示成功,数据多条(这个问题很严重,用户下了一张单结果显示多条,系统管理方面也不好操作)
处理方法
简单方法:获取数据库唯一值【存在限制】 存在30秒内各项数据都相同的单,就update,否则insert,这个时间可以根据自己的需求来定,此方法的限制是,数据表内必须存在唯一主键和更新日期,不然用不了复杂方法:使用token【通用】 1.session中使用token保存,然后使用时进入方法则删除token
js创建token接口,提交前先设置session:
.ajax({ type: type, url:path,//此处进入后台设置token data: data, dataType:dataType, success:function(d){ }, error:function(e){ } });
后台:
public void someMethod(){ request.getSession().setAttribute("submit","1");}
提交:
public void submit(){ String data = request.getSession().getAttribute("submit"); if(data == null){ return; }else{ request.getSession().setAttribute("submit",null); //进行提交操作 }}
2.ajax不进入后台
.ajax({ type: type, url:path, data: data, cache:false,//此处设无缓存 dataType:dataType, success:function(d){ }, error:function(e){ } });
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~