<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0">
	<channel>
		<title>Hoofei's blog</title>
		<link>http://hoofei.com/</link>
		<description>人的头脑太复杂，时间过得久，有时候连自己也被自己骗了，记下来才是最真实的...</description>
		<copyright>Copyright (C) 2004 Security Angel Team [S4T] All Rights Reserved.</copyright>
		<generator>SaBlog-X Version 2.0 Build 20080226</generator>
		<lastBuildDate>Sat, 09 Aug 2008 05:35:17 +0000</lastBuildDate>
		<ttl>30</ttl>
		<item>
			<guid>http://hoofei.com/optimize-webpage/</guid>
			<title>如何减少网页的内存与CPU占用</title>
			<author>Hoofei</author>
			<description><![CDATA[Hoofei's blog ( http://hoofei.com/ ) : <p>　　有的网页看起来并不大但打开会很卡，有的网页虽然很长但使用流畅，占用用户电脑的内存与CPU就影响这些。 <br />
<br />
　　浏览器问题，有各自的浏览器处理内存问题会影响到，但几乎没办法控制得了，Windows上的： <br />
<br />
　　IE系列，刷新回收的量不大，但最小化会释放内存，。 <br />
<br />
　　Firefox2据说也会在最小化回收，可我从没见过最垃圾，用多少是多少，基本不回收。据说prototype的ajax还会引起内存一直增加。 <br />
<br />
　　Opera最好。一直控制得很好。不存在什么问题。。 <br />
<br />
　　Linux的内存分配机制与Win的不一样，有多少用多少，如果浏览器占光时说不定会干掉系统。 <br />
<br />
　　页面问题，浏览器渲染页面会消耗内存和CPU，能减少一点就减少点。 <br />
<br />
　　<b>结构上 </b><br />
<br />
　　使用DocType，告诉浏览器你在用什么，html4也有DTD。也许Transitional更适合你 <br />
<br />
　　如果使用的是XHTML并能保持良好结构的话，记得输出相应的MIME跟XML头1，可以减少浏览器的代码检查， <br />
<br />
　　保持结构的完整，不要让浏览器帮你补全代码。 <br />
<br />
　　控制页面的文件大小，可以通过程序把为了看代码比较舒服的缩进去掉。2~3K也是大小。 <br />
<br />
　　iframe会产生新的页面，其实有很多方式可以代替iframe <br />
<br />
　　引入的JS与CSS可以适当合并，同样背景图片也可以合并，甚至有人连Flash都合并 <br />
<br />
　　给已知宽高的内容图片/Object加上宽度的属性可以减少页面的局部重渲染 <br />
<br />
　　<b>表现上 </b><br />
<br />
　　质量99跟70的jpg在大多数情况下只有文件有大小不一样。gif的也一样，特别是小图标，256色跟128色的差别是文件大小． <br />
<br />
　　flash动得太快吃CPU很大，控制每秒的帧数及动画的效果可以减少一些，如果把品质用中低显示会省很多资源，但这样却牺牲了效果。。quality属性 有时选择Autolow2 或者Autohigh会更适合，没必要一直low 或者best， <br />
<br />
　　flash使用矢量图会节省文件大小，但计算复杂的图形跟动画时花的是CPU。复杂的太多滤镜，则会占用大量内存，模糊滤镜有减少些3。 <br />
<br />
　　IE的滤镜也是比较占用内存，同时也有兼容性问题。全屏的半透明很吃资源的。 <br />
<br />
　　2*2的图片跟8*8的图片大小差不多，但是平铺背景2*2却占用大很多。 <br />
<br />
　　gif动画同样有帧的概念，别把gif当成flash来玩就行。 <br />
<br />
　　<b>行为上</b> <br />
<br />
　　别为了使用一个$()引入整个pretotype或jQuery，它们有更多的作用。 <br />
<br />
　　AJAX很帅。但是用xml会用上XML解析器，有人推荐用JSON，可是这样要eval数据，其实可以直接import已经是对象的script来用。只是要多传个对象名，或者把对象名写死，或者像flickr那样jsonFlickrApi({&quot;xxx&quot;:&quot;xxx&quot;})，直接当函数用，挖哈哈。 <br />
<br />
　　实现某些效果时能用visibility:hidden解决时就别用display:none来玩。 <br />
<br />
　　在这里强调js变量要注全局跟局部等等的意义并不大，JS复杂的地方也不是一两句能说得清的，关注大家关注月影的正在出版的新书吧。^^ <br />
<br />
　　其实这里有的内容有不少跟 如何快速的呈现我们的网页 相近，不过那篇是以处理服务端为主，但在很多时候，节省服务端资源消耗的同时也会节省客户端的资源消耗。 <br />
<br />
　　再其实，这篇已经蹲在草稿箱里好久了，一直没有时间去整理。现在给的也不是完整的，因为没有完整，慢慢补充吧。 <br />
<br />
　　产生问题：虽然会引起 浏览器的模式问题 ，但问题是可以解决滴。参考Serving up XHTML with the correct MIME type ，派送XML头浏览器不会容错显示，出现错误结构会导致整个页面无法显法。 <br />
<br />
　　Autolow: 优先考虑速度，但是也会尽可能改善外观。 回放开始时，消除锯齿功能处于关闭状态。 如果 Flash Player 检测到处理器可以处理消除锯齿功能，就会打开该功能。 <br />
<br />
　　Autohigh:开始时回放速度和外观两者并重，必要时会牺牲外观来保证回放速度。 回放开始时，消除锯齿功能处于打开状态。如果实际帧频降到指定帧频之下，就会关闭消除锯齿功能以提高回放速度。使用此设置可模拟&ldquo;消除锯齿&rdquo;命令（&ldquo;视图&rdquo;&gt;&ldquo;预览模式&rdquo;&gt;&ldquo;消除锯齿&rdquo;）。 <br />
<br />
　　模糊滤镜:使用模糊滤镜时，如果用于 blurX 和 blurY 的值是 2 的整数次幂（例如 2、4、8、16 和 32），则可以加快计算速度，并且可以使性能提高 20% 到 30%（flash的帮助是介样说滴）。</p>]]></description>
			<link>http://hoofei.com/optimize-webpage/</link>
			<category domain="http://hoofei.com/category/collection/">收藏</category>
			<pubDate>2008-05-13 20:38</pubDate>
		</item>
	</channel>
</rss>
