发新话题
打印

如何解决网页的内存对CPU的大量占用?

如何解决网页的内存对CPU的大量占用?

有的网页看起来并不大但打开会很卡,有的网页虽然很长但使用流畅,占用用户电脑的内存与CPU就影响这些。浏览器问题,有各自的浏览器处理内存问题会影响到,但几乎没办法控制得了,Windows上的:! J! ~; M! l/ \, K5 n5 ]3 m
' i3 \% a1 M2 U4 g7 i
  IE系列,刷新回收的量不大,但最小化会释放内存,。
7 Y0 ]4 `5 z* y% B) H! C7 V  Firefox2据说也会在最小化回收,可我从没见过最垃圾,用多少是多少,基本不回收。据说prototype的ajax还会引起内存一直增加。 , g  E$ e1 Q- E
  Opera最好。一直控制得很好。不存在什么问题。
1 L4 h  _/ W' H  Linux的内存分配机制与Win的不一样,有多少用多少,如果浏览器占光时说不定会干掉系统。7 o  L7 M1 W7 G5 P  R7 o; u9 F

% Z8 S5 N" d! U7 F' y( P; m      页面问题,浏览器渲染页面会消耗内存和CPU,能减少一点就减少点。9 U. ?2 j2 G& @6 z5 B* g& H2 t
. ]+ C( C6 Y) [1 s0 I
  结构上
" o* a' F1 O) I$ J+ r, }" b& M( z$ w7 c. @+ ^0 i
  使用DocType,告诉浏览器你在用什么,html4也有DTD。也许Transitional更适合你。3 w# Y0 h: C$ T( F: l$ u- y
2 K  w2 u2 J0 ]  G$ d
  如果使用的是XHTML并能保持良好结构的话,记得输出相应的MIME跟XML头1,可以减少浏览器的代码检查,保持结构的完整,不要让浏览器帮你补全代码。, a+ [/ ]0 s/ x+ f9 a
9 r: e# n7 n; A+ X: h$ K# B
  控制页面的文件大小,可以通过程序把为了看代码比较舒服的缩进去掉。2~3K也是大小。+ ?! k* W/ L1 |: |4 ~2 @

$ B6 A; B# T2 ^+ c; B8 m+ i+ }  iframe会产生新的页面,其实有很多方式可以代替iframe引入的JS与CSS可以适当合并,同样背景图片也可以合并,甚至有人连Flash都合并给已知宽高的内容图片/Object加上宽度的属性可以减少页面的局部重渲染。7 D: G6 x3 k0 T

  S! y, u5 B3 Z  表现上
! j' u7 H+ ~, s2 g, w7 N
! h; P2 }2 h, r# I3 W- E7 N) C  质量99跟70的jpg在大多数情况下只有文件有大小不一样。gif的也一样,特别是小图标,256色跟128色的差别是文件大小。
+ ]+ [$ L: D+ x# z7 \  W; C% _
$ M4 d8 Y9 q4 I2 w  flash动得太快吃CPU很大,控制每秒的帧数及动画的效果可以减少一些,如果把品质用中低显示会省很多资源,但这样却牺牲了效果。。quality属性 有时选择Autolow2 或者Autohigh会更适合,没必要一直low 或者best,flash使用矢量图会节省文件大小,但计算复杂的图形跟动画时花的是CPU。复杂的太多滤镜,则会占用大量内存,模糊滤镜有减少些3。. Y: E$ p6 r% I" k/ H4 B6 l

, b& i7 y& |0 J: ?2 _  @8 ?  IE的滤镜也是比较占用内存,同时也有兼容性问题。全屏的半透明很吃资源的。
% c& {. e4 S+ l% p1 s
4 m' [2 C# e$ _  2*2的图片跟8*8的图片大小差不多,但是平铺背景2*2却占用大很多。
4 w0 \, S( H$ l$ f
& C) |+ `! o1 [0 F  gif动画同样有帧的概念,别把gif当成flash来玩就行。( E: V( t; ~; V) T( `9 s% E
+ p, V, r. C3 s( {  x& ]7 O1 {
  行为上
4 n2 V3 Z$ {$ s& ?& j. g( d
) t5 V/ D8 l& a  别为了使用一个$()引入整个pretotype或jQuery,它们有更多的作用。  Z) N# n4 w6 p/ m2 O! j
& n: p, ^5 [% F- ~% X  L
  AJAX很帅。但是用xml会用上XML解析器,有人推荐用JSON,可是这样要eval数据,其实可以直接import已经是对象的script来用。只是要多传个对象名,或者把对象名写死,或者像flickr那样jsonFlickrApi({"xxx":"xxx"}),直接当函数用。9 g5 d& _( M8 m' b5 `
  y  f0 S* E$ ~5 m
  实现某些效果时能用visibility:hidden解决时就别用display:none。在这里强调js变量要注全局跟局部等等的意义并不大,JS复杂的地方也不是一两句能说得清的。5 V- k- z% Q# |5 k( y
) z6 ~( o2 [: F) [9 Z7 w
    产生问题:虽然会引起浏览器的模式问题 ,但问题是可以解决滴。参考Serving up XHTML with the correct MIME type ,派送XML头浏览器不会容错显示,出现错误结构会导致整个页面无法显法。! [& T; |. M7 v7 _# P6 [' U

6 b: t. p* `, C( Y: e8 r) k; A  Autolow: 优先考虑速度,但是也会尽可能改善外观。 回放开始时,消除锯齿功能处于关闭状态。 如果 Flash Player 检测到处理器可以处理消除锯齿功能,就会打开该功能。0 r  n  C' `7 e* p

$ R0 Z/ N3 u% ~! \  Autohigh:开始时回放速度和外观两者并重,必要时会牺牲外观来保证回放速度。 回放开始时,消除锯齿功能处于打开状态。如果实际帧频降到指定帧频之下,就会关闭消除锯齿功能以提高回放速度。使用此设置可模拟“消除锯齿”命令(“视图”>“预览模式”>“消除锯齿”)。
  k2 Z' W0 o  l, Y, ?6 ?# L) `9 r. }
3 e. {& b# h" v- I0 H+ V  模糊滤镜:使用模糊滤镜时,如果用于 blurX 和 blurY 的值是 2 的整数次幂(例如 2、4、8、16 和 32),则可以加快计算速度,并且可以使性能提高 20% 到 30%。
赠人玫瑰,手有余香。

TOP

发新话题