用JavaScript写了一个操作Excel的程序,由于要操作大量Excel文件,占用较长时间,可能有2分钟吧,在此期间浏览器是僵住的。这样太不用户又好了,试了半天jQuery的进度条,还是没解决僵住浏览器的问题。用浏览器写应用,怎么解决计算时浏览器僵住的问题?谢谢!

解决方案 »

  1.   

    我以前也试过,计算大最的数据,ie会挂掉,死锁
    后来我他妈的用服务器的其他(如asp或php)来算,算好了,直接返回数据给js,问题解决,呵
      

  2.   

    js效率蛮低的. 大量运算不要用js来完成了.
      

  3.   

    咱哥们玩JS,不就是为了那富客户端啥的,难免会碰上大量客户端计算的问题,难道解决办法都是将复杂计算扔给服务器?这不就又回到从前了。客户端多算点没啥,问题是别僵住啊,是不是只有用多线程/进程来解决,这个多线程JS有吗?问题似乎越来越复杂了。
      

  4.   

    JavaScript写了一个操作Excel?用的active ?IE only
      

  5.   

    你有想过使用ajax方式实现么(异步方式),不是在服务器端进行计算,而是通过ajax访问的响应页面来做这个事情,得到结果。
      

  6.   

    接着上面的想法延伸:你访问一个无关紧要的页面,返回结果也不需要,只要返回状态,在操作成功的函数中写你的读取excel的代码,这样是异步方式实现,不会占用浏览器的资源。
      

  7.   

    此外你也可以试试使用setTimeout函数,这个好像也是异步调用的(不过我没试过);
      

  8.   

    谢谢xiejiao_java! 你给的思路启发了我,等我实验一下。
    这个应用完全是本地的,用ActiveX,只适合IE。
      

  9.   

    纠正下 js和富客户端不等价
    如果想玩富客户端 可以考虑flash或者silverlightjs处理程序的效率决定了他不是用来进行大量运算的。
    active是可以考虑的。不过不要太重量级。
      

  10.   


    是为了用户体验不是为了js而js
      

  11.   


    在目前的浏览器状况下 ,是不支持多线程的。最多通过setInterval模拟,但都不是真的。
      

  12.   

    中间用setTimeout断开,我用javascript做的文本内容批量替换工具,是20个文件一个操作,然后setTimeout("函数",1)
    这样中间有个中断,就不会卡死了。一次处理几个你得自己估计一下。