关于自动发出ajax请求与setTimeout 和setTimeInterval?
视频里的老师说可以封装成方法,不断请求,但是setTimeout 明明是只执行一次,如何不断执行?
用setTimeInterval?但是将文中的setTimeout换成setTimeInterval,顶多也是执行无数次 setTimeout里的回调函数,请问:
那老师说可以封装成函数无数次调用是怎么回事儿?
能大概说下这种无数次请求如何写么,顺便问下当ajax成功时,如何停止重复?
能不能让视频里的老师说话清楚点,声音大点,实在是。。。听不懂他说话,对了!我用一倍速,还是被大舌头打败了?
1
收起
正在回答
1回答
您好,是将ajax封装为一个方法,然后让函数自身再次调用 setTimeout()。例如将ajax封装为函数test,那么就可以为setTimeout("test()",1000);。参考如下:
<!doctype html> <html> <head> <meta http-equiv='content-type' content='text/html;charset=utf-8'> <script src='http://cdn.bootcss.com/jquery/3.1.1/jquery.min.js'></script> </head> <body> <button id='bid' onClick="test()">test</button> <script> // jQuery.ajax(url,[settings]) error success function test(){ $.ajax({ url:'test5.php', dataType:'json', type:'GET', timeout:2000,//2s success:function(data,status){ alert(data); }, error:function(XMLHttpRequest, textStatus, errorThrown){ //网络连接比较慢 if(textStatus === 'timeout'){ alert('请求超时'); setTimeout("test()",2000); } } }); } </script> </body> </html>
ajax执行成功为success,方法中输出提示语句之后就会停止。
祝学习愉快!
PHP常用技术与ThinkPHP5框架开发
- 参与学习 人
- 提交作业 225 份
- 解答问题 3372 个
掌握用PHP开发互联网网站的必备功能,掌握当下主流的Linux系统开发,并熟练使用热门框架ThinkPhp开发电商团购项目,是通向PHP工程师必经之路。
了解课程
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星