好湿?好紧?好多水好爽自慰,久久久噜久噜久久综合,成人做爰A片免费看黄冈,机机对机机30分钟无遮挡

主頁 > 知識庫 > CSS樣式表的背景渲染效率

CSS樣式表的背景渲染效率

熱門標簽:南寧外呼電銷系統招商 石家莊電話機器人電話 北京銷售外呼系統線路 南通電話外呼系統開發 沸思外呼線路 電銷智能機器人靠譜么 400電話辦理安徽 電銷機器人的宣傳語 江西防封卡外呼系統怎么安裝
我的MzTreeView1.0樹控件發布至今,得到了不少意見反饋,很多網友給了我很多的中肯的建議,也指出了這個控件里的諸多BUG和不足之處,所以我準備寫一個新版本的樹,將大家的建議都整合進來實現。這幾天我就一直在寫新版的樹,樹控件最重要的是效率,特別是大節點量的時候,效率稍微差點的模式就會拖垮瀏覽器,所以新版的樹我首要的還是提高效率,比如增加異步數據加載的支持等,另外我還有一個設想,就是樹的樹型結構豎線用樣式表(背景圖)來實現,樣式表背景圖片只需要加載一次,而現在這個模式(用多個img>)圖片雖然有緩存機制,但還是有可以每張小圖片都請求一次服務器的,所以我想用樣式表來實現有多么的好呀,代碼又精簡,結構又清晰,效果又酷,但是結果我將近一個星期的測試,我這種設想徹底失敗,原因就是樣式表的渲染效率太差。新的構想沒能實現,心情有些沮喪,但我想也應該讓大家分享一下這個測試成果。

    這里我再解釋一下樹型里的豎線,樹的左邊都有 ┌ ├ └ │ 這些豎線圖表示樹層次,我的1.0版里是用一張張的小圖片堆積起來的,而這種使用樣式表的是用div class="l2">/div> 這種代碼來實現的,樣式表負責填充背景圖。

    #mtvroot div td{width:20px;height:20px;}
    #mtvroot .l0{background:url(line0.gif) no-repeat center}
    #mtvroot .l1{background:url(line1.gif) no-repeat center}
    #mtvroot .l2{background:url(line2.gif) no-repeat center}
    #mtvroot .l3{background:url(line3.gif) no-repeat center}
    #mtvroot .l4{background:url(line4.gif) no-repeat center}
    #mtvroot .ll{background:url(line5.gif) no-repeat center}
    #mtvroot .pm0{background:url(plus0.gif) no-repeat center}
    #mtvroot .pm1{background:url(plus1.gif) no-repeat center}
    #mtvroot .pm2{background:url(plus2.gif) no-repeat center}
    #mtvroot .pm3{background:url(plus3.gif) no-repeat center}
    #mtvroot .expand .pm0{background:url(minus0.gif) no-repeat center}
    #mtvroot .expand .pm1{background:url(minus1.gif) no-repeat center}
    #mtvroot .expand .pm2{background:url(minus2.gif) no-repeat center}
    #mtvroot .expand .pm3{background:url(minus3.gif) no-repeat center}

    上面這段CSS是我在腳本里動態生成的一段樣式的片段,我把它貼上來,有助于后面的講解。運用樣式表之后,果真精簡了許多,每個節點的生成也夠快,但我發現,當我的樹節點量達到,比如說300-500個節點之后,節點生成的效率沒有影響什么,但每個節點的展開/收縮很慢很慢,需要幾秒鐘以上甚至10秒,且這個期間的CPU占用率是100%。說明一下,樹型的展開/收縮是設置父節點的 style.display = none|block 來實現的。我的電腦配置是:AMD2800+ 1GDDR400內存,配置不太差的。

    我首先的反應是:是不是用了太多的table>影響了效率?因為我每一個節點都用了一個table>,但是我把table>換成了div>、span>等,效率沒有什么改善,說明這個CPU占用率100%的問題不是HTML標簽的問題,那么剩下來的問題就是這里使用了樣式表。

    以一個500節點的量來說吧,1.0里左邊大概要堆積2000個左右的小圖片。這種情況在瀏覽器端設置本地不緩存的時候會存在很大的問題,要加載這些多的小圖片需要消耗不少的時間和服務器資源,所以我才會有這種新的用樣式表來解決的想法,現在換成樣式表法,也就是大概有2000個地方需要用樣式表來渲染出背景圖。我測試了各種情況,再對比1.0版的代碼得出的結論是:CPU的點用率如此之高,唯一的原因也就只有這種渲染的耗時了。驗證也非常簡單,我把上面的樣式表的左邊 #mtvroot 這部分去掉,也就是去掉樣式表的依托關系,測試的結果發現效率改善了很多,但耗時依然是可觀的,有3-5秒之多。

    另外我換了不同的瀏覽器,測試的結果也不太一樣,在IE里最為惡心,比如說我在某個節點有500子節點,我將它收起(CPU100%,等待3-5秒),也就是display="none",這時候若我去收起這個節點的父節點(這個節點沒有其它的同級節點,即它的父節點只有它這么一個子節點),照理說只有一個節點,收起應該是即時的事,但結果不然,結果又是3-5秒的CPU100%,這個讓我狂郁悶,也就是說即使HTML對象被display="none"隱藏掉了,但是對它的父級進行任何操作的時候,IE會對這些被隱藏的對象用樣式表重新渲染一遍,真是搞不懂IE的開發者當初是怎么想的。

    我又到FIREFOX里測試了一下,在收起的時候(display=none)是瞬間的,可以肯定,FF對待被隱藏的對象不會再消耗精力。當然展開的時候所有的瀏覽器都一樣:3-5秒的CPU100%,不過FF稍微要快些。

    通過上面的這些現象我得出這么一個結論:樣式表在動態渲染的時候效率并不高;在父容器發現狀態變化的時候會引起它的所以子孫對象的樣式表重新渲染;FireFox 對待被display=none隱藏的對象不會重新渲染而IE會。

    那么這種樣式表的渲染效率問題以前為什么一直沒有被發現呢?嘿嘿,大家做網頁的時候難得會做到這種極端的時候,一個頁面里有幾千個需要樣式表渲染背景圖。通常也就幾個地方或者幾十個地方了,所以感覺不出來渲染的效率,也感覺不出這方面在不同的瀏覽器之間的差別。但是在做樹這些的控件的時候必定會碰到各種極端的問題,比如大數據量的數組,生成的HTML對象的多少等等,象這種渲染的效率差別也只是我在寫JS腳本時碰到的問題之一而已。今天我把這個測試結果共享出來是希望對大家以后寫程序的時候有所借薦,在做設計的時候有所考慮。

    最后多謝大家對我寫的控件的肯定與支持,謝謝了!

標簽:云南 北海 寧夏 晉中 衢州 陽泉 來賓 鹽城

巨人網絡通訊聲明:本文標題《CSS樣式表的背景渲染效率》,本文關鍵詞  CSS,樣式,表,的,背景,渲染,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《CSS樣式表的背景渲染效率》相關的同類信息!
  • 本頁收集關于CSS樣式表的背景渲染效率的相關信息資訊供網民參考!
  • 推薦文章
    主站蜘蛛池模板: 斯嘉丽裸乳照无奶罩视频| 国产伦精品一区二区三区不卡| 国产成人精品三级高清久久91| 和岳m的小说| 宝贝儿帮我拉开拉链它想你了| 西西大胆裸模自慰照| 国产一区二区不卡亚洲涩情| 国产永久| 一面膜上边一面膜下边舔B| 视频一区在线播放| 40熟妇疯狂做受XXXX高潮| 国产风流老太婆大BBBHD视频| 国产精品欧美亚洲日本久久| 老妇女黄色片| 女生叫男生自己的r头| 真人直播大片 免费| 国产精品高潮呻吟久久无码观看| 国产v片在线播放免费观| 国产精品青青青高清在线密亚| 禁脔鞭打她h虐| 夏目あきら被续侵犯7天| 日木Av精品一区二区在线观看| 国产日日夜夜| 国产小视频你懂的在线| 巜人妻初尝按摩师BD中字| 91se精品免费观看| 漂亮的背地里和同学激烈| 美女福利视频网站| 色噜噜狠狠狠888人妻熟女| 四川裸体AAAABBBB| 午夜欧美成人久久久久久| 一个b一个| 又爽又黄无遮挡高清免费视频| 99热精品动漫在线观看| 韩国大尺度理伦片A片方子信| 国产普通话对白精品hd| 9制片厂制片传媒在线播放| 欧洲50岁60岁70岁80岁| 久久久天堂国产精品女人| 野花香视频中文免费观看| 男女69式互添在线看|