Ajax轮询请求状态(微信公众号带参数二维码登录网站)

Ajax轮询请求状态(微信公众号带参数二维码登录网站)
这里的功能登录网站通过参数扫描的微信公众号二维码。

但显然,如果请求服务器Ajax不间断,这会增加服务器的负荷,所以这个例子使用JS调用setInterval定期执行一个Ajax函数来请求数据的服务器,但尚未成功的请求或要求一定数量与clearInterval函数空定时器的时间后。

代码和注释如下:(后端采用thinkphp,所以有一些ThinkPHP JS代码语法规则)

var uid ={ $ UID };
var I=0;
VaR的定时器;
$()Ready(函数(){)
打开盒子扫描代码登录模式
$(#登录)。Click(function(){)
如果用户登录,则返回
如果(UID){
返回;
}
使用远程选项打开远程加载的数据框
$(# loginmodel的模态({)。
远程:{::U(用户/登录)}
});
});
清除数据隐藏模式
$(# loginmodel ),(隐藏。BS。模态
$(这)。RemoveData(BS模式);
});
当该框显示在模式之后,请求服务器数据通过时间返回时,定时器是服务器请求,每三秒一次。
$(# loginmodel '),('shown。BS。模态功能(e){ {)
定时器= setInterval(ajax_request,3000);
});
});
ajax请求函数,
功能ajax_request(){
++;
20个请求如果没有请求成功,强制结束,给出一条消息,因为每次3S调用时间,调用20次,可能是一分钟。
如果(i = 20){
$('。login_info1)。Html(登录超时登录,请刷新页面走今天走。);
ClearInterval(定时器);
返回;
}
$ ajax({
类型:邮政
网址:{::U(用户/ login_qrcode ')}
超时时间:3000,
数据:{scene_id ):$(' # scene_id)。瓦迩()},
成功:函数(MSG){
如果(1 = MSG。状态){
$('。login_info1)。Html('' +味精。信息+);
setTimeout(刷新,3000);
返回;
}
},
错误:函数(){
}
});
}
重新加载页面
函数刷新(){
location.reload();
}
好的,代码在这里,我希望能帮助你!
免责声明:本网信息来自于互联网,目的在于传递更多信息,并不代表本网赞同其观点。其原创性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,并请自行核实相关内容。本站不承担此类作品侵权行为的直接责任及连带责任。如若本网有任何内容侵犯您的权益,请及时联系我们,本站将会在24小时内处理完毕。
相关文章
返回顶部