【发布时间】:2018-05-27 00:57:12
【问题描述】:
例如,用户想登录,连接慢或者请求卡在某个网络中,然后用户等待,但有时重发请求比等待更好。
问题:
- 理想的等待时间是多少? (没有上传文件,只是 简单登录)我已经放了 15 秒,但可能太多了。
- 最好的解决方案是什么?
1) 让用户等待,直到他决定再次点击登录
2) 设置 ajax 超时
$.ajax({
url: '{{ url('/login') }}',
data: data,
method: 'POST',
timeout: 15000,
并向他们显示错误
error: function(data, status, error){
if(status==="timeout") {
var errorString = 'Please retry. Ref Timeout';
}
3) 自动重试 (code)
$.ajax({
url : 'someurl',
type : 'POST',
data : ....,
tryCount : 0,
retryLimit : 3,
...
error: function(data, status, error){
if (status == 'timeout') {
this.tryCount++;
if (this.tryCount <= this.retryLimit) {
//try again
$.ajax(this);
return;
}
return;
}
4) 在 ajax 上使用包装函数
setTimeout(function(){
$.ajax({...})
}, 15000);
【问题讨论】:
标签: javascript jquery ajax