问题描述
- js中for循环每次循环如何暂停一秒后执行
- 大神们帮我看一下我写的这段代码:
//人员授权的全增功能
function alladdroleshouquanusers()
{var rows = partid3.getSelecteds(); for(var i=0;i<rows.length;i++) { var sendData = nui.encode({'userid':rows[i].OPERATOR_ID'prPartId':plPartId3}); nui.ajax ( { url:""com.spinsoft.eip.portal.Part.queryalladdusers.biz.ext"" type:'POST' data:sendData cache: false contentType:'text/json' success:function(text) { var returnJson = nui.decode(text); if(returnJson.exception == null) { partid3.reload(); partid4.reload(); } else { nui.alert(""添加角色授权失败""系统提示""); partid1.unmask(); } } } ); } }
我是想利用选择框全选,然后点击一键全都添加,但是在这里遇到了问题,以上代码中数据可以获取,但是在执行ajax的时候出现了问题,全增的时候之增加过去了一部分,还有一部分没有增加过去,我尝试在for循环下面加了一个alert,然后弹出一个alert就点击一下,就这样的方式,数据居然可以全都添加过去,为此很纳闷,不知道是哪里出了问题,自己怀疑是不是ajax执行的太快了,数据丢失的原因,所以想让for循环慢一点执行试一下,网上搜索页搜索不到结果,哪位大神有解决的办法,谢谢了!
解决方案
<script>var index=0; var handler = setInterval(""alladdroleshouquanusers()""1000); if(index<rows.length){ index++; if(index>=rows.length){ clearInterval(handler);//关闭定时 } 原来for里面的一堆代码 } </script>
解决方案二:
两种方法可以解决你的问题:同步阻塞的ajax;或写一个函数递归调用请求ajax。
解决方案三:
For循环的执行流程
js for 循环
js的for循环
解决方案四:
你这里每次循环就发送一次请求,为什么不批量组织在一起,请求一次呢?
解决方案五:
加一个 async:false试试
时间: 2024-09-19 09:52:14