这个不是错误,是你的代码太耗费资源。
例子:
for(i=0;i<50000000000000;i++)
这样的情况就可能会有那样的提示

解决方案 »

  1.   

    呵呵.... 有办法的. 不用 for 循环....用 setTimeout 或 setInterval ... 实现.
    这样虽然速度会慢点... 但不会导致死机或出现以上错误.
    你可以在"遍历" 的时候, 出一个 waiting bar .. 这样就应该能解决了.
      

  2.   

    就如goldenlove(潇洒.net)说的,用setTimeout或者setInterval来避免程序在就算过程中失去响应。下面是我以前写的一个例子,从1一直加到2000000,在我的机器上要10多秒,就算过程中不会失去响应,IE也不会有那个提示。-----------------------------------------------------------------
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=gb2312">
    <title>emu</title>
    </head>
    <body>
    <div id=ttText style="display:none">
    程序运行中......<BR>
    <span id=currentState></span> &nbsp; <button onclick="CANCLE = true;">停止</button><BR>
    </div>
    <button onclick="run_step1()" id=button1>开始</button>
    <span id=result></span>
    <script>
    var i=0;
    var sum =0;
    var CANCLE = false;
    var max = 2000000; //循环的终点
    var step = 9999; //步长:选择合适的步长可以在响应能力和计算速度上获得比较好的折衷。
    //(步长用9999而不是10000只是为了显示的时候好看,其实都一样)
    var timeStart = "";
    function run_step1()
    {
    if (i == 0)timeStart = new Date();
    ttText.style.display="";
    button1.style.display="none";
    setTimeout("run_step2()",1);
    CANCLE = false;
    }
    function run_step2()
    {
    if (CANCLE) 
    {
    ttText.style.display="none";
    button1.style.display="";
    button1.value="继续";
    return;
    }
    if (i == null)
    {
    //初始化
    //注意:这里不能写var,因为循环变量和结果都为全局变量。
    i = 1;
    sum = 0;
    run_step2();
    }
    else if (i<=max)
    {
    var endValue = i+step;
    if (endValue >max) endValue = max+1;
    for (j=i; j<endValue ; j++)
    sum += j;
    i+=step;
    currentState.innerText = i;
    result.innerText = "临时结果:"+sum;
    setTimeout("run_step2()",20);
    }
    else
    {
    run_step3();
    }
    }
    function run_step3()
    {
    ttText.style.display="none";
    button1.style.display="";
    button1.value="重新开始";
    result.innerText = "最终结果"+sum+" 用时:"+(new Date-timeStart)/1000+"秒"
    sum = 0;
    i = 0;
    }
    </script>
    </body>
    </html>
    -----------------------------------------------------------------
      

  3.   

    呵呵,思路放开一点嘛。非这样子做不成的。
    要么象csdn的论坛列表一样,延迟加载。要么该变一下形式。
    原来在做一个1000个人的员工树的时候,用原始的树的形式要好几百K的数据量,就算在服务器端生成好了显示都够慢的。后来改成象资源管理器那样的,选了部门再动态加载员工列表显示,现在跑10000个人的数据一点都不慢。