您当前位置:首页 >> 网站心得 >> 如何减少网页占用内存和CPU过高
如何减少网页占用内存和CPU过高
更新时间:2008-01-24参与评论
有的网页看起来并不大但打开会很卡,有的网页虽然很长但使用流畅,占用用户电脑的内存与CPU就影响这些。
浏览器问题,有各自的浏览器处理内存问题会影响到,但几乎没办法控制得了,Windows上的:
IE系列,刷新回收的量不大,但最小化会释放内存,Firefox2据说也会在最小化回收,可我从没见过最垃圾,用多少是多少,基本不回收。据说prototype的ajax还会引起内存一直增加。Opera最好。一直控制得很好。不存在什么问题。Linux的内存分配机制与Win的不一样,有多少用多少,如果浏览器占光时说不定会干掉系统。
页面问题,浏览器渲染页面会消耗内存和CPU,能减少一点就减少点。
结构上使用DocType,告诉浏览器你在用什么,html4也有DTD。也许Transitional更适合你,如果使用的是XHTML并能保持良好结构的话,记得输出相应的MIME跟XML头1,可以减少浏览器的代码检查,保持结构的完整,不要让浏览器帮你补全代码。控制页面的文件大小,可以通过程序把为了看代码比较舒服的缩进去掉。2~3K也是大小。iframe会产生新的页面,其实有很多方式可以代替iframe,引入的JS与CSS可以适当合并,同样背景图片也可以合并,甚至有人连Flash都合并,给已知宽高的内容图片/Object加上宽度的属性可以减少页面的局部重渲染
表现上质量99跟70的jpg在大多数情况下只有文件有大小不一样。gif的也一样,特别是小图标,256色跟128色的差别是文件大小。flash动得太快吃CPU很大,控制每秒的帧数及动画的效果可以减少一些,如果把品质用中低显示会省很多资源,但这样却牺牲了效果。quality属性 有时选择Autolow2 或者Autohigh会更适合,没必要一直low 或者best,flash使用矢量图会节省文件大小,但计算复杂的图形跟动画时花的是CPU。复杂的太多滤镜,则会占用大量内存,模糊滤镜有减少些3。 IE的滤镜也是比较占用内存,同时也有兼容性问题。全屏的半透明很吃资源的。 2*2的图片跟8*8的图片大小差不多,但是平铺背景2*2却占用大很多。 gif动画同样有帧的概念,别把gif当成flash来玩就行。
行为上别为了使用一个$()引入整个pretotype或jQuery,它们有更多的作用。AJAX很帅。但是用xml会用上XML解析器,有人推荐用JSON,可是这样要eval数据,其实可以直接import已经是对象的script来用。只是要多传个对象名,或者把对象名写死,或者像flickr那样jsonFlickrApi({"xxx":"xxx"}),直接当函数用,挖哈哈。实现某些效果时能用visibility:hidden解决时就别用display:none来玩。


