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循环慢一点执行试一下,网上搜索页搜索不到结果,哪位大神有解决的办法,谢谢了!

5个回答

<script>
var index=0;
 var handler = setInterval("alladdroleshouquanusers()",1000);
 if(index<rows.length){
    index++;
        if(index>=rows.length){
            clearInterval(handler);//关闭定时
        }
    原来for里面的一堆代码
 }
 </script>
lv6917527
lv6917527 可以用了,谢谢大哥啊,搞得这么晚了。
大约 4 年之前 回复
lv6917527
lv6917527 我看了一下,刚才那个还是不行,因为我点击rows 的时候rows里是有数据的,但是当这个函数执行 完一遍的时候,rows又变成了未选择状态,也就是空,这样if里所有的语句都不执行了,这个怎么破,我试下这个同步执行的方法。
大约 4 年之前 回复
danielinbiti
danielinbiti 回复lv6917527: 改成同步执行了,data:sendData, cache: false,async:false,
大约 4 年之前 回复
lv6917527
lv6917527 这样我又试了一下,感觉太耗资源,电脑死机了。。。
大约 4 年之前 回复
lv6917527
lv6917527 这个方法试过了,不行,还是跟原来一样。
大约 4 年之前 回复

两种方法可以解决你的问题:同步阻塞的ajax;或写一个函数递归调用请求ajax。

ClementAD
Clement-Xu 回复lv6917527: 大概是这样的: //递归Ajax调用 function runSingleTcInBatch(i, stats){ //递归结束条件 if(i==testCases.length){ return; } ajaxRequest(rootPath+testCases[i].url, testCases[i].requestBody, function callback(jsonResult, status){ runSingleTcInBatch(++i, stats);//递归调用 }); } 调用:runSingleTcInBatch(1, stats);
大约 4 年之前 回复
lv6917527
lv6917527 如何递归调用ajax,求指教。。。
大约 4 年之前 回复

刚刚项目中写了一下。。正好用到的。。看看合不合你意。。

for循环中每执行一些代码后暂停一秒再执行一些

你这里每次循环就发送一次请求,为什么不批量组织在一起,请求一次呢?

lv6917527
lv6917527 刚才搞错了地方,晕,我再试试。
大约 4 年之前 回复
lv6917527
lv6917527 我也想这样做啊,但是试了一次,不行,因为我这边传过去的是数据库中输出的数据,而那边需要接收实体数据,虽然我已经把数据库的数据单个迭代放入实体中,但是不知道哪里出问题了,就是出不来,无奈就这样做了,这样居然也不知道哪里出问题了。
大约 4 年之前 回复

加一个 async:false试试

lv6917527
lv6917527 谢谢你,不过刚才已经采纳其他的了,这个方法能用。
大约 4 年之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
JS中如何循环for循环
我们需要执行的for循环, for(let i = 0,len = 5;i &amp;lt; len;i++){ ... //需要执行的事件 } 当我们需要循环这个for循环时,可以将这个for循环封装成一个函数。 function for_test(){ for(let i = 0,len = 5;i &amp;lt; len;i++){ ... //需要执...
让for循环一秒执行一次
[code=HTML]function time()rnrn for(i=0;i<7;i++)rn rn alert(i);rn rn[/code]rn怎样让for循环里面的i,一秒钟执行一次。
JS暂停几秒后执行
[code=JScript]for(var i=0;i
一秒钟内执行一次循环,不满一秒暂停剩下毫秒让一次循环满足一秒
注意:不是每隔一秒执行一次,是一秒执行一次rn需要做一个视频播放和地图画点同步的功能,即A暂停了,地图画点也暂停,A播放地图画点也播放。画点要比较精确的卡在A的每一秒上。rn现在地图画点是一定能在一秒钟之内完成的。rnrn我选来的视频播放rnprivate void ButtonPlayClick(object sender, EventArgs e)rn rn vlcControl_Main.Play();rn if (!isPlay)rn rn //开始走地图画点方法rn ……………………rn rn else if (isPlay && isSuspend)rn rn isSuspend = false;rn rn rn //暂停rn private void ButtonPauseClick(object sender, EventArgs e)rn rn vlcControl_Main.Pause();rn if (isPlay)rn rn isSuspend = true;rn rn rn //终止rn private void ButtonStopClick(object sender, EventArgs e)rn rn vlcControl_Main.Stop();rn if (isPlay)rn rn isStop = true;rn rn rnrn我原来的地图画点的for循环(这里的线程是另起了一个)rn foreach (var item in cargpslist)rn rn tryrn rn DateTime bt = DateTime.Now;rn WaitForMapDrag();rn this._manualResetEvent.WaitOne();rnrn //当需要暂停操作时,阻止后台线程继续执行rn while (isSuspend && !isStop)rn rn Thread.Sleep(50);rn rnrn if (isStop) //停止rn rn isSuspend = !isStop;rn isPlay = !isStop;rn break;rn rnrn WaitForMapDrag();rn this._manualResetEvent.WaitOne();rnrn //绘制轨迹rn ………………………rn ………………………rn ………………………rnrn sleepseconds = (int)(1000 - (DateTime.Now - bt).Milliseconds);rnrn Thread.Sleep(sleepseconds);rn rn catchrn rn rnrn这样基本能够做到不满一秒让线程暂停补足一秒,但是有几个问题。rn1.每一循环要执行完才sleep,如果是暂停之后再paly,这时候线程没有sleep,导致不能和视频点同步rn2.点击暂停的时候应该会执行到Thread.Sleep(50)那里面,那么之前那几行代码运行的毫秒数是否可以忽略不计rn3.这样做每次都要去datetime再计算会不会导致误差越来越大rn4.用System.Threading.Timer是否更好?有方法能够取到timer已经走过的剩下的毫秒数,或者timer可以暂停,计时一完就走循环?rn5.顺便问一下关于vlc视频的起始时间点问题,因为很可能视频的第一秒根本就不足一秒,只有几百毫秒,如何取到这个值?
js等待一秒执行
setTimeout(parent.parent.location.reload(),1000);//setTimeout('fun()',1000);
for循环中如何设置暂停?
如题,老问题了,但是没很好的解决。例如:rnfor(int i=0;i<1000;i++)rnrn//此处设置可以暂停的判断语句rn循环结构;rnrn要求暂停后程序中比方说datagridview里数据可以拷出来,不能设置对话框,那样的暂停方式不能对程序界面里的东西进行修改。重新开始后从上次中断的地方继续运行循环体。
for循环暂停几秒后继续执行
请问各位,我想实现这样的功能rnfor (int i=0;i<=100;i++)rnrn Response.write("XXX");rn 暂停1秒rnrn想for循环暂停几秒后继续执行,请问用什么方法可以实现?rn用thread.sleep(3000)好像不行rnrn请各位帮忙解决,散分,谢谢
for循环与for...in循环JS
for循环是最基本的只是,不多介绍,直接以for循环为例和 for…in对比 for…in 语法详细,见w3chttp://www.w3school.com.cn/js/js_loop_for_in.asp for…in 语句用于对 数组 或者 对象 的 属性 进行循环操作。 *1:对于数组遍历来说俩个循环基本差不多(如下)* 在JavaScript中,不支持自定义下标...
js 暂停执行 和重复执行
  var  demo = setTimeout(function(){ },200);     暂停多少毫秒执行   clearTimeout (demo) 在时间以内 可以清除执行 还有一种执行方法,与暂停类似,setInterval()就是时间间隔表示在某段时间内不停的去执行一行代码,除了停止它否则会一直执行下去,这就是与setTimeout()不同之处,一个是暂停多少秒后执行一次,而...
javascript让for循环一秒执行一次
javascript让for循环一秒执行一次 function time(val) { for(var i = val;i&lt;7;i++) { alert(i) window.setTimeout("time("+ ++i +")",1000) break; } } time(0)
暂停JS向下执行。
如:rnvar a = 1;rn暂停3秒,再执行下面代码;rnvar b = 2;rnrn
暂停JS向下执行
var a = 1;rn暂停3秒;rnvar b = 2;
js 暂停执行
转原文件:http://blog.csdn.net/liangzhongqin/article/details/6400452     js 暂停执行         //js暂停函数      function Pause(obj,iMinSecond){          if (window.eventList==null) window.eventList=new Ar...
09_python_练习题——暂停一秒
#题目:暂停一秒输出。 提示:python自带库里面也有控制时间的函数,只用调用相关的函数就能实现
Python3 暂停一秒输出
题目 暂停一秒输出。 程序分析 使用 time 模块的 sleep() 函数。 import time for i in range(4): print(str(int(time.time()))[-2:]) time.sleep(1)
求教循环暂停执行的方法
我现在有这样一个头痛的问题rn有一个for循环,在执行的过程中可能会有一个询问,当遇到询问时要求弹出一个对话框,用户选择是/否,根据用户的选择去执行一些方法并记录。然后再回到for循环继续执行。rnrn询问时要弹出一个有选择是/否的对话框,这样是不是要将for循环挂起了呢?rn请各位指教rnwebForm实现rnrn[code=C#]rn for 循环条件rn rn code....;rn if(DialogBox == "Y")rn rn Do produce1 and mark;rn rn elsern Do produce2 and mark;rn code.....rn rn[/code]rn差不多就是这个意思
c#暂停FOR循环,处理完毕后,继续F循环
点了button10_Click开始遍历数据,当读到第一条打开TIME,执行TIME里的代码,要求是一定要等TIME里的全部运行完,才能继续FOR 循环,该怎么做呢?rnrnrnrnrnrn private void button10_Click(object sender, EventArgs e)rn rn //这里开始批量处理rn //先读 数据rn //测试遍历数据rnrn int jls = this.dataGridView1.Rows.Count;rn rn for (int ts=0 ; ts<=jls-2 ;ts++)rn rn rn rn rn zybm = this.dataGridView1.Rows[ts].Cells[0].Value.ToString(); //资源编号rn sybm = this.dataGridView1.Rows[ts].Cells[6].Value.ToString(); //使用部门 rn syhj = this.dataGridView1.Rows[ts].Cells[5].Value.ToString(); //使用环境rn syr = this.dataGridView1.Rows[ts].Cells[7].Value.ToString(); //使用人rn azdd = this.dataGridView1.Rows[ts].Cells[8].Value.ToString(); //安装地点rn sbwz = this.dataGridView1.Rows[ts].Cells[9].Value.ToString(); //设备位置rn azrq = this.dataGridView1.Rows[ts].Cells[10].Value.ToString(); //安装日期rn rn rn timer1.Enabled = true;rn rn rn rn rn rnrnrnrnrn private void timer1_Tick(object sender, EventArgs e)rn rnrnrn rn rn button6_Click(sender, e);rn if (bz1 == "1")rn rn rn button7_Click(sender, e);rn bz1 = "0";rn rnrn rn elsern rn MessageBox.Show("61");rn button6_Click(sender, e);rn rn rn timer1.Enabled = false;rnrn
js for循环 本次还没执行完成就执行下次循环
代码:rn[img=https://img-bbs.csdn.net/upload/201701/05/1483600022_627256.png][/img]rn结果为:rn[img=https://img-bbs.csdn.net/upload/201701/05/1483600043_653988.png][/img]rnrn其中myGeo.getPoint为百度地图api中的函数rn111都没打印就直接跳往下一次循环了 rn我想执行完myGeo.getPoint里面的再执行下一次循环 rn各位大哥知道怎么弄不?rn求指点啊
如何让FOR循环每执行一个循环后停顿1秒?
如何让FOR循环每执行一个循环后停顿1秒?让后执行下个循环。rn我在做新闻内容生成静态。但有些要分页。一次要生成很多个静态页面。但每次最多生成了3个页面就断了。我想是不是执行速度过快、所以请教这个问题
在for循环中,怎样做到每完成一次循环,就暂停,按下回车键后继续下一次循环
如题
python实例(暂停一秒输出)
题目:暂停一秒输出。 #-*- coding:utf-8 -*- import time L = [1,2,3] for i in range(len(L)): print L[i] time.sleep(1)
程序9--暂停一秒输出
题目:暂停一秒输出。 例子: import time def pause_a_second(): myD = {1:'a',2:'b'} for key,value in dict.items(myD): print(key,value) time.sleep(1) 运行: >>> pause_a_second() 1
如何暂停程序的执行!
如果在winform中有这样的方法rnprivate void a()rnrn b();//现在我希望当在b()中满足一定的条件后,不运行c(),该怎么弄??不用if作判断rn c();rnrnprivate void b()//返回voidrnrnprivate void c()rnrn我知道在asp.net中可以用Response.End();来实现,在winform中可以吗?
如何暂停程序的执行??
myRTB.AppendText("你好!"); rnmyRTB.AppendText("开始!"); rnrn如何在执行完第一句代码后让程序暂停5秒后再执行第二句。
如何暂停函数执行?
如何暂停一个函数的执行,并可以在中断的地方继续执行?
js实现秒表后并实现每次暂停自动记录时间
rn rn rn rn rn rn rn rn rn rnrn基本的功能已经写好,但是想在每次暂停之后自动记录时间。求解!
在for循环中如何实现每次加2?
在vb中可以用 for i=1 to 10 step 2rn在java语法中如何实现呢??
关于for循环暂停和继续
我在写有个密码生成器,用for循环的,见代码rnrn[code=VB]Private Sub MySqlJM_Click()rnDim S() As StringrnDim strtemp As StringrnS() = Split("a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,0,1,2,3,4,5,6,7,8,9", ",")rnFor i1 = 1 To 36 rn For i2 = 1 To 36rn For i3 = 1 To 36rn For i4 = 1 To 36rn For i5 = 1 To 36rn For i6 = 1 To 36rn strtemp = S(i1 - 1) & S(i2 - 1) & S(i3 - 1) & S(i4 - 1) & S(i5 - 1) & S(i6 - 1) '组合长度rn Text1.Text = Text1.Text & Chr(13) & Chr(10) & strtemprn Next i6rn Next i5rn Next i4rn Next i3rn Next i2rnNext i1rnMsgBox "尼玛隔壁,跑死老子了!!", vbCritical + vbOKOnly, "信息"rnEnd Sub[/code]rn现在想在里面加个暂停和继续功能,求方法rn还有就是希望能指定循环的起始点,比如上次生成密码到“aabbcc”,然后这次就指定从“aabbcc”开始继续往下跑····· 求方法···
js循环执行函数
假设,有这么一个HTMLrn[code=HTML]rn链接1rn链接2rn链接3rn链接4rn..........rn.......rn链接Nrnrnrn[/code]rn可以看到,这个页面里有N个链接,每一个链接的onclick属性都执行了一次APP()函数, 而且每一次fuck函数的第一个参数都是不同的数字 fuck('数字',this)...rnrn那么,[b]我需要使用JS代码来使所有的fuck函数自动执行[/b],也就是不需要点击链接了......rnrn本人js太烂,所以请教各位高手,望不吝赐教.....请贴出代码,谢谢rnrnrn
js之延迟执行及循环执行
function reloadDataGrid() { $(&quot;#dataGrid&quot;).datagrid(&quot;reload&quot;,{});}setTimeout(reloadDataGrid,1000); // 延迟一秒后刷新列表var reloadInterval = window.setInterval(reloadDataGrid, 1000*20); // 20秒刷新一次表格 window....
线程暂停(循环计数暂停)
黑窗口 多线程 不断输出数据 按键盘暂停继续,很实用。VC6.0.对于初学信号量的人来说很有用。
JS如何暂停时间。
自己定义了个时间函数;获得当前系统时间,时分秒。再用一个按钮事件来开始、暂停时间;该如何做。rn详细说明,注释
在for循环中怎么创建每次循环不同的变量
[code=C#]rn for (int i = 0; i < 5; i++)rn rn string ii=i.ToString();rn DataColumn ??????= new DataColumn(ii, typeof(double));rn b0x.Columns.Add(??????);rn DataRow row = b0x.NewRow();rnrn for (int j = 0; j < 10; j++)rn rn row = b0x.NewRow();rn row[??????] = DOU[j];rn b0x.Rows.Add(row);rn rn dt1.Tables.Add(b0x);rn [/code]rn我想在外面的一个for循环每次循环时,创建不同的列,代码中"??????"表示,也就是第一次循环时,i=0,"??????"就是0,第二次循环时,i=1,"??????"就是1,第三次循环时,i=2,"??????"就是2,一次类推,应该怎么去定义这个列呢?保证循环一次之后就变成另外一个新的列,重新循环,不知道大家明白我的意思不?rn 我本意是对dataset中的一个datatable b0x进行赋值,这个datatable b0x中有5列,列名分别为0,1,2,3,4,怎么分别对这5个列进行填充数据?rn
求助:access中VBA for循环如何储存每次循环后的值,最后一起引用
如题, for循环一般用于累加,得到最后的终值,如果我想要得到每次循环后的值并储存在多个变量中,最后在一个语句中,一起引用这些数值.rn例如:rnrnf1 为第1循环后得到值并储存的变量rnf2为第2循环后得到值并储存的变量rnf3 为第3循环后得到值并储存的变量rnf4 为第4循环后得到值并储存的变量rn......rn.....rn....rn....rnrnfn 为第n循环后得到值并储存的变量rnrn最后在一个语句中rs.field.f1 & rs.field.f2 & .... & rs.field.fnrnrn谢谢大家
如何暂停ole控制循环?
::OleInitialize(0);rnwhile(1)rnrnCreateObject("xx");rn...rnwhile(btnPause->Down)rnrn Application->ProcessMessages();rnrn...rnrn...rn以上代码无法暂停(在非ole中可以)
请问如何暂停一个循环?
比如有rnsetInterval("hehe()",20);rn我要填加一个按钮,点击能够暂停循环。怎么做?
for循环中的i++每次只能前进1步,如何每次循环步进3步
由于只能用1维数组,所以要求每3组才循环一次。如:rnstring [] s = a1,a2,a3,b1,b2,b3,c1,c2,c3,d1,d2,d3....rnrn各位:如何for?
for循环和for in循环
var arr=[11,12,13]var obj={a:12,b:13,c:14}alert(obj['a']);-------12alert(obj.a);------12数组既可以是for循环,也可以是for in循环json对象只能用for in循环,因为没有length属性for(var i in obj){    alert(i+&quot;=&quot;+obj[i]);//i为属性名}//  a=12...
循环——for循环
&nbsp; &nbsp; 本课程从C#的最基础讲起,内容包括.net framework及 C#的含义,编写最简单的C#程序,简单变量,复杂变量,表达式,程序流程<span>控制</span>(顺序、分支和循环),函数的定义和调用等。
循环_for循环
<p>n <span>n n <span style="font-size:14px;">课程介绍:</span>n n<br /></span>n</p>n<p>n <span>本章主要讲解javascript基本介绍及发展趋势、JS和H5的关系、编写Js及如何运行JS、变量的概念及基本运算、变量命名规则和关键字的介绍、赋值、关系、数学运算符的讲解、变量不同类型之间的自动、手动类型转换、逻辑运算、自增自减运算、八进制和十六进制的介绍、NaN的概念及应用、Number方法的应用和计算机内存。</span>n</p>
相关热词 c#入门推荐书 c# 解码海康数据流 c# xml的遍历循环 c# 取 查看源码没有的 c#解决高并发 委托 c#日期转化为字符串 c# 显示问号 c# 字典对象池 c#5.0 安装程序 c# 分页算法