当前位置:   article > 正文

在JS中循环调用AJAX方法_循环ajax多次 js

循环ajax多次 js

代码:

var i;

for(i=0;i<10;i++){

      ajaxServise(i);

}

 

在for循环中调用ajax方法  补充页面上的数据,这样写是错误的,他不会每执行一次for循环就执行一次ajax方法,而是等for循环结束才去执行ajax方法,所以导致ajax只被执行一次。然而当修改如下:

 

for(i=0;i<10;i++){

      alert("aa");

      ajaxServise(i);

}

与上面不同的是在每次调用的时候都弹出一个窗体  alert("内容随意")  这样就可以在页面正确显示内容 而不是一条内容

 

原因:原因就是for循环在JS中是单线程的,他会在for循环结束之后然后执行下一步,一步一步进行实现,而alert切断循环,让程序响应一次,从而再次调用ajax方法,然而在程序当中我们却不能让alert方法出现。

解决办法:

var i=0;

var sum=10;

var time;

ajaxServise(i){

       if(i==sum){

            clearTimeout(time);

        }

        i=i+1;

        time = setTimeout(ajaxServise(),10);

        ……………………

        ………………

        …………

        ……

 

这里用setTimeout(AJAX())方法进行调用,setTimeout会当此方法执行完毕然后再次执行AJAX()方法,用setTimeout与clearTimeout配合完美解决此问题。

 

PS:setTimeout是伪多线程。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/知新_RL/article/detail/148320
推荐阅读
相关标签
  

闽ICP备14008679号