這篇文章主要講了CSS對背景圖片渲染效率的一些經(jīng)驗(yàn)和研究:
書寫高效的CSS - 漫談CSS的渲染效率http://www.52css.com/article.asp?id=787
CSS對Web頁面載入效率的影響http://www.52css.com/article.asp?id=751
樹型結(jié)構(gòu)豎線用樣式表(背景圖)來實(shí)現(xiàn),樣式表背景圖片只需要加載一次,而現(xiàn)在這個(gè)模式(用多個(gè))圖片雖然有緩存機(jī)制,但還是有可以每張小圖片都請求一次服務(wù)器的,所以我想用樣式表來實(shí)現(xiàn)有多么的好呀,代碼又精簡,結(jié)構(gòu)又清晰,效果又酷,但是結(jié)果我將近一個(gè)星期的測試,我這種設(shè)想徹底失敗,原因就是樣式表的渲染效率太差。新的構(gòu)想沒能實(shí)現(xiàn),心情有些沮喪,但我想也應(yīng)該讓大家分享一下這個(gè)測試成果。
這里我再解釋一下樹型里的豎線,樹的左邊都有 ┌ ├ └ │ 這些豎線圖表示樹層次,我的1.0版里是用一張張的小圖片堆積起來的,而這種使用樣式表的是用
(l是字母L)這種代碼來實(shí)現(xiàn)的,樣式表負(fù)責(zé)填充背景圖。?
以下為引用的內(nèi)容: ??? Example Source Code [www.52css.com] ??? #www_52css_com .l0{background:url(line0.gif) no-repeat center} ??? #www_52css_com .l1{background:url(line1.gif) no-repeat center} ??? #www_52css_com .l2{background:url(line2.gif) no-repeat center} ??? #www_52css_com .l3{background:url(line3.gif) no-repeat center} ??? #www_52css_com .l4{background:url(line4.gif) no-repeat center} ??? #www_52css_com .ll{background:url(line5.gif) no-repeat center} ??? #www_52css_com .pm0{background:url(plus0.gif) no-repeat center} ??? #www_52css_com .pm1{background:url(plus1.gif) no-repeat center} ??? #www_52css_com .pm2{background:url(plus2.gif) no-repeat center} ??? #www_52css_com .pm3{background:url(plus3.gif) no-repeat center} ??? #www_52css_com .expand .pm0{background:url(minus0.gif) no-repeat center} ??? #www_52css_com .expand .pm1{background:url(minus1.gif) no-repeat center} ??? #www_52css_com .expand .pm2{background:url(minus2.gif) no-repeat center} ??? #www_52css_com .expand .pm3{background:url(minus3.gif) no-repeat center} |
上面這段CSS是我在腳本里動(dòng)態(tài)生成的一段樣式的片段,我把它貼上來,有助于后面的講解。運(yùn)用樣式表之后,果真精簡了許多,每個(gè)節(jié)點(diǎn)的生成也夠快,但我發(fā)現(xiàn),當(dāng)我的樹節(jié)點(diǎn)量達(dá)到,比如說300-500個(gè)節(jié)點(diǎn)之后,節(jié)點(diǎn)生成的效率沒有影響什么,但每個(gè)節(jié)點(diǎn)的展開/收縮很慢很慢,需要幾秒鐘以上甚至10秒,且這個(gè)期間的CPU占用率是100%。說明一下,樹型的展開/收縮是設(shè)置父節(jié)點(diǎn)的 style.display = none|block 來實(shí)現(xiàn)的。我的電腦配置是:AMD2800+ 1GDDR400內(nèi)存,配置不太差的。
我首先的反應(yīng)是:是不是用了太多的