不会吧
那你把i的上限改大些,如下:
for(var i=0; i<100000; i++){我的机器在循环后才显示的提示信息,处理过程中没有显示。
我希望在处理前能及时显示出来。我发现如果在show_msg('正在处理...');//显示提示信息
后紧跟一个alert就能显示出来,否则就得等到循环处理玩才行

解决方案 »

  1.   

    这是浏览器处理脚本的问题,浏览器等待函数停止了才会刷新屏幕,所以如果你在程序中加入了alert,就会中断程序,浏览就会刷新屏幕,因此就能看到那个DIV,但如果中途函数没有停止,那就无法显示了,我想一个办法就是用setTimeout来解决,如:
    function tt(){
       alert('start!');
       show_msg('正在处理...');//显示提示信息
       setTimeout("start_tran()",0);
    }
    function start_tran(){
    for(var i=0; i<1000; i++){
           window.status=i;
       }
    alert('end!');
    }函数start_tran()就是事务处理过程,这样就需要在每个事务结束后加上一个结束的提示,虽然这样做有点麻烦各重复,但可以很好的解决了你的问题
      

  2.   

    to varkychan(kevinchan):
    这个我也想到了,但这实际上是在tt()内定时运行另一个,我无法根据start_tran()的运行情况决定tt()的返回结果。
      

  3.   

    如果要获取运行结果,那么可以设置一个全局变量来获取,再设一个事务状态变量,当事务处理完时设为true,否则为false,那么在要获得结果的函数中检测该值,直到为true时才读取用于保存结果的全局变量值,然后把事务状态变量设为false.但这样做,效率可能会低,但如果你一定要用DIV实现,那么可能只有这样了,或者等待高人出来指点迷津.
      

  4.   

    在页面上不要用for(),效率低下,应该用时间,用setTimeout()比较好