起源
这次的心得起源这样一个场景:用户导入数据,导入之后需要等待数据全部导完才能进行操作。看到这个我首先想到的是,可以设计为当用户点击了导入按钮,就把页面禁止,禁止有很多方法比如遮挡层和模态,我用的模态,然后等待导入完成再解除禁止状态。但是一次我偶然发现,只要刷新一次页面就破解了,因为页面会重新执行禁止就没了,所以,如何在刷新的情况下也能禁止呢,下面我来讲下我的方法。
思路
我就直接说思路了,图以后有时间再去截,在导入这个过程的开头往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("导入+查重过程中出现错误导致后续过程中止,