如何解決網頁的內存對CPU的大量占用?
有的網頁看起來并不大但打開會很卡有的網頁雖然很長但使用流暢占用用戶電腦的內存與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 或者bestflash使用矢量圖會節省文件大小但計算復雜的圖形跟動畫時花的是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在這里強調js變量要注全局跟局部等等的意義并不大JS復雜的地方也不是一兩句能說得清的
產生問題雖然會引起瀏覽器的模式問題 但問題是可以解決滴參考Serving up XHTML with the correct MIME type 派送XML頭瀏覽器不會容錯顯示出現錯誤結構會導致整個頁面無法顯法
Autolow: 優先考慮速度但是也會盡可能改善外觀 回放開始時消除鋸齒功能處于關閉狀態 如果 Flash Player 檢測到處理器可以處理消除鋸齒功能就會打開該功能
Autohigh:開始時回放速度和外觀兩者并重必要時會犧牲外觀來保證回放速度 回放開始時消除鋸齒功能處于打開狀態如果實際幀頻降到指定幀頻之下就會關閉消除鋸齒功能以提高回放速度使用此設置可模擬消除鋸齒命令視圖>預覽模式>消除鋸齒
模糊濾鏡:使用模糊濾鏡時如果用于 blurX 和 blurY 的值是 2 的整數次冪例如 24816 和 32則可以加快計算速度并且可以使性能提高 20% 到 30%