用ASP,HTMl,Javascript开发了套企业管理程序,做到最后发现一个比较严重的问题:就是操作速度慢!慢不是体现在server端,而是体现在客户端,许多已打开的页面在切换时,明细滞后,且CPU占用率经常100%!(仅在客户端,server端很正常)程序打开时,只开一个IE,然后许多功能都是用层和iframe实现的,特别是iframe很多。如果说运行中CPU占用率高倒也罢了,问题是即使我在页面空白处快速晃动鼠标,CPU也能达到100%,然后再掉下来。非常不解!不知何原因?

解决方案 »

  1.   

    为什么刚开始开发的时候或在开发过程中没有发现这个问题?可能太多iframe了,也可能jscript有问题。我碰过一个项目,里面有个叫alai的树型视图组件,是在网上找来用的,开发过程中都没发觉有问题,后来一测试,操作十几次之后,CPU就100%,IE占内存100多M,原来是就那alai树型视图组件有内存泄漏,100多个节点,每用一次就漏6、7M的内存。我自己重新写过一个树型视图组件就没事了。
      

  2.   

    每个 iframe 都是一个窗体,有自己独立滴 request,系统为每个 iframe 单独加载,就相当于同时开启多个窗口滴效果一样,CPU 须并行处理多个 response 以便加载至相应页面。JS 用得太多即使没有任何错误也会导致客户端缓慢,尤其是许多动态计算滴样式表非常消耗系统资源!
    建议:重新设计页面功能,分解至多个页面,或适当采用 ajax 处理之!
      

  3.   

    做WEB不用iframe,线程开得太多,CPU100几百都有了
      

  4.   

    主要是脚本慢...
    而且只能单线程执行...
    看看Qzone就知道了...
      

  5.   

    内存倒是没有太高,页面打开速度也还可以,关键是在页面上我即使什么也不操作,只是晃晃鼠标,一瞬间CPU占用率就会窜到100%,然后鼠标不动,它又下来了。在赛扬2.66的机器上,晃晃鼠标就到100%,在P4D 3.0机器上,会窜到60%-70%左右,机器性能越低停滞感越明显。我把随页面加载的JS全部删除,问题依旧。
    我猜想是不是一个IE窗口下,开了很多iframe后,本身性能就无法保证了?
      

  6.   

    太奇怪了!用Firefox打开程序,居然把全部模块都打开,CPU占用率(瞬间)很少超过100%,而且明显速度变快。
      

  7.   

    只是晃晃鼠标,一瞬间CPU占用率就会窜到100%
    ===============================================
    怎么可能会有这种事?难道有很多鼠标事件?
      

  8.   

    在Firefox里,即使在有鼠标事件的部分快速晃动鼠标,事件反应速度依然很快,而CPU占用率也不高。这下彻底郁闷了,一开始就是准备IE环境下用的,到头来在Firefox里居然更快,只不过当时只顾着考虑IE的显示效果了,在Firefox下许多地方是混乱的。看来是IE不能支持太多iframe。
      

  9.   

    CSS的问题吧...
    看看这个...
    http://blog.csdn.net/meizz/archive/2005/12/09/548116.aspx
      

  10.   

    浏览器在载一个域名的时候,只会开两个线程(这是规定),简单地说,一个载页面,一个载其它。多个iframe,一定是载完了一个再载第二个,要排队,占内存
      

  11.   

    再次测试,用IE打开一个本地htm文件(小说,2M多),然后在页面空白处迅速晃动鼠标,CPU占用率会窜到50%-60%。
    同样的文件用firefox打开,随便鼠标怎么动,从来不超过7%。看来IE一旦加载了一个大容量的文件,性能会明显下降,即使仅仅打开一个本地文件而已。