我现在写了一个函数
在这个函数理有一个循环,循环50次。
每次都要到特定的接口取得数据,需要花大约3秒钟。
这样一算,整个函数要花3分钟。
如果不作处理,整个页面就像瘫痪了一样没反应。现在我这样像,没循环一次,都停下来500毫秒,可以让IE作一些其它的事情。
特别是把上一次运算的结果显示出来。我的问题是,如何才能让函数停止500毫秒呢?用setTimeout的话,只是等待一段时间后才运行函数,而在此等待的时间里,函数依然会运行下面的语句的。而不是停止运行。谢谢!

解决方案 »

  1.   

    脚本里是没有 sleep() 函数的,所以你只能是反代码逻辑拆分,在取数据成功之时迭代下一轮的代码
      

  2.   

    利用VB里TIMER的思想啊..不一定要局限JAVA里的SLEEP来停止线程....var step=1;function step1()
    {
     if(step<=30)
     {
       var timer = setTimeout("step2",300);
     }
    }function step2()
    {
     ...
    }
      

  3.   

    现在的最大问题是,时间太长,
    IE很有可能会弹出一个“应用程序没反应,切换其它......”这种的对话框。
    这样使得非常不好用,用户会投诉的。函数要循环50此,每次都要到不同服务器取数据,没得一次取完。
    在取得一次数据后,我想让程序停下来500毫秒,可以让IE做其它事情。
    就这样。谢谢。
      

  4.   

    你想写进度条,你可以把两块代码分开,比如进度条的表现模块用 setInterval("", 10) 十个毫秒监测一次某个变量数据,而取数据的模块,在取成功之后对这个变量数据做一个特殊标记,这样就不会把电脑往死里跑了。