重复的ajax请求让人很受伤
重复的ajax请求让人很受伤
重复的ajax请求一波又一波的袭来,服务器正躲在角落里瑟瑟发抖,它内心是崩溃的,这算是遭了罪了, 前端小王子为啥没有做好限制和封锁,真是伤不起啊,哎,不如意事常八九,能与人言无二三...... 以上场景是我们平时在开发中稍微不注意就会重现的,也因此伤了多少服务器的心;我们作为前端开发人员,应该正视而且重视这个问题。在这里,给大家提供以下几种解决方案:
1
UI层面的拦截
1
UI层面的拦截
1.$("#submit").prop("disabled",true); //按钮禁用
2.showLoading() //显示动画
3.$.ajax({ ... timeout: 4000, // 设置超时时间 complete:function(){ hideLoading() //隐藏动画 }})
2
JS层面的封锁
(1) 暴力点击
2
JS层面的封锁
2
JS层面的封锁
obtn.onclick = (function(){ var timer; return function(){ if(timer){ clearTimeout(timer) } timer= setTimeout(() => { console.log("ajax发送; 查询结果") }, 500) } })()
(2)多tab页快速切换
var CancelToken = axios.CancelToken;var source = CancelToken.source();
axios.get('/user/12345', { cancelToken: source.token}).catch(function(thrown) { if (axios.isCancel(thrown)) { console.log('Request canceled', thrown.message); } else { // handle error }});
// cancel the request (the message parameter is optional)source.cancel('Operation canceled by the user.');
不同的使用场景,我们可以灵活的组合以上的解决方案, 不知道这样做的话,是否能挽回服务器的心,我又想起了夕阳下的奔跑,那是我与服务器美好邂逅,也是我们逝去的青春......
