禁止用户操作以等待过程完成(防刷新破解)

当用户触发数据导入后,为了确保操作安全和用户体验,可以使用模态层禁止页面交互,但在用户刷新页面后,禁止状态丢失。解决办法是在导入开始时将进行状态存入session,页面加载时检查该状态决定是否启用禁止。通过定时轮询检查导入是否结束,结束后更新session状态,并在条件满足时刷新页面以恢复正确状态。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

起源

这次的心得起源这样一个场景:用户导入数据,导入之后需要等待数据全部导完才能进行操作。看到这个我首先想到的是,可以设计为当用户点击了导入按钮,就把页面禁止,禁止有很多方法比如遮挡层和模态,我用的模态,然后等待导入完成再解除禁止状态。但是一次我偶然发现,只要刷新一次页面就破解了,因为页面会重新执行禁止就没了,所以,如何在刷新的情况下也能禁止呢,下面我来讲下我的方法。

思路

我就直接说思路了,图以后有时间再去截,在导入这个过程的开头往session中存一个值作为是否还在进行的标志,然后在导入结束后移除这个值或者改变这个值。

然后页面在加载完取这个值,用于判断页面到底禁止还是不禁止。因为这个值是存在session里面的,所以即使用户刷新,只要这个过程没结束,页面也一样是禁止的。

下面是几个关键的代码:

(后台关键代码)

public int ExcelImport(List<String[]> list, HttpServletRequest request) {
		//是否还在导入的标志
		request.getSession().setAttribute("isUnusual", true);
		int i=0;
		try {
			i=importHandle_16(list, request);
			checkRepeat();
		} catch (Exception e) {
			e.printStackTrace();
			log.error("导入+查重过程中出现错误导致后续过程中止,
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值