<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    posts - 36, comments - 419, trackbacks - 0, articles - 0
      BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理

    高性能WEB開發 - 圖片篇

    Posted on 2010-02-22 16:53 BearRui(AK-47) 閱讀(10309) 評論(9)  編輯  收藏 所屬分類: 高性能WEB開發
    一、縮小圖片大小
    當圖片很多的時候,減少圖片大小是提高下載速度最直接的方法。
    1. 使用PNG8代替GIF(非動畫圖片),因為PNG8在效果一樣的情況,圖片大小比GIF要小。
    ?
    2. 用fireworks處理PNG圖片,在我們產品中很多PNG圖片是美工直接用photoshop導出的,
    ?? ?后來讓美工用fireworks處理PNG(大概的方式是選擇保存為PNG8,刪除背景色)。
    ?? ?處理后100K的圖片大小基本減少了3/4,但圖片質量也會有少許降低,要看自己是否能接受。

    3. 使用Smush.it(http://www.smushit.com/ysmush.it/)壓縮圖片,Smush.it是YUI團隊做1個在線壓縮圖片的網站,
    ?? 該網站在不影響原圖片的質量下去掉圖片中一些元數據,所以可以放心使用該網站進行壓縮,
    ?? 但這個壓縮比例也是比較有限的。

    二、合并圖片和拆分圖片
    1. CSS Sprites合并圖片以減少請求數來提高性能大家都知道。但不要把圖片合并太多,太多太大了,
    就會因為這1個圖片影響這個頁面的顯示了。

    2. 有時候我們需要把1個大圖片拆分成多個小圖片,比如產品首頁圖片比較少,就1個很大的banner圖片,
    因瀏覽器都可以并發下載圖片,所以如果不拆分,只使用1個大圖片的話,下載速度反而會比較慢

    三、透明圖片處理
    IE6不能顯示透明的PNG圖片,是很多開發人員特別頭疼的事,分別介紹下幾種方式的優缺點。

    1.使用AlphaImageLoader,IE6支持filter,使用下面的CSS代碼,可以讓IE6支持PNG
    ??#some-element {
    ?? ?background: url(image.png);
    ?? ?_background: none;
    ?? ?_filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(src='image.png', sizingMethod='crop');
    ??}
    優點:使用簡單
    缺點:性能損耗很大,AlphaImageLoader會花費很多資源去處理透明圖片,使用AlphaImageLoader,IE使用內存會迅速上升。
    而且AlphaImageLoader所有處理都在同1個線程中同步進行,所以當AlphaImageLoader多的時候,會阻塞UI的渲染。
    使用_filter,IE7也可以識別,其實IE7是可以識別PNG透明圖片的,如果在IE7下使用上面代碼,IE7不會直接使用圖片,而是使用AlphaImageLoader。
    注:個人建議盡量避免使用AlphaImageLoader

    2. JS處理
    使用DD_belatedPNG(http://www.dillerdesign.com/experiment/DD_belatedPNG/),可以很簡單的對界面上所有的透明圖片進行同一處理。
    優點:使用簡單(比AlphaImageLoader還簡單)
    缺點:當頁面上需要處理的圖片比較多的時候,速度也比較慢,而且不能動態改變圖片。

    3. VML
    IE6支持VML,VML可以使用透明圖片,代碼如下:
    修改html代碼頭部
    html? xmlns ="http://www.w3.org/1999/xhtml" ?xmlns:v >
    ??????????
    head > ?
    ???????
    style? type ="text/css" >
    ????????????v\:*
    { behavior : url(#default#VML) ; }
    ???????????
    span style="color: rgb(128, 0, 0);">style >
    ??????????
    span style="color: rgb(128, 0, 0);">head > ??
    ??????????
    body >
    ?????????????
    v:image? src ="image.png" ? />
    ??????????
    span style="color: rgb(128, 0, 0);">body >
    ????????
    span style="color: rgb(128, 0, 0);">html >

    優點:性能好,速度快
    缺點:使用復雜,而且不支持firefox等瀏覽器,需要判斷不同的瀏覽器輸出不同的HTML代碼。

    四、多域名下載圖片
    因每個瀏覽器對同1個域名同時只能發送固定的請求,比如IE6好像是2個,所以可以對圖片資源開通多個域名進行請求,
    比如img1.abc.com,img2.abc.com。但域名不要開啟太多,因為解析域名和打開新的連接都需要消耗時間,域名多了,說不定反而會更慢。一般2-4個域名就夠了。

    五、IE6下緩存背景圖片
    IE6背景圖片緩存是個麻煩事,很多人知道使用下面的JS來讓IE6緩存背景圖片
    try{
    ?? ? document.execCommand("BackgroundImageCache", false, true);
    }catch(e){}?
    但是這樣做的效果并不是非常好,當出現鼠標移動改變背景圖片的時候,IE6老是會發送1個圖片請求(盡管該背景圖片已經下載),
    雖然返回結果是304,但還是要花費不少時間。在這種情況下,可以使用下面1個變通的方式來處理,
    在頁面上直接使用1個DIV元素來加載該圖片,這樣加載圖片就能真正被緩存,鼠標移動也不會發送請求了。
    ?? ? ? ?
    六、預加載圖片

    使用下面代碼可以在頁面加載完畢后預加載下1個頁面的圖片,當進入下1個頁面就不用再下載圖片了。
    window.onload=function(){
    ?? var img = new Image();
    ?? img.src = "images/image.png";
    ?? img = null;
    };



    [作者]:BearRui(AK-47)
    [博客]: http://m.tkk7.com/bearrui/
    [聲明]:本博所有文章版權歸作者所有(除特殊說明以外),轉載請注明出處.
    英雄,別走啊,幫哥評論下:  

    精彩推薦 好文要頂 水平一般 看不懂 還需努力

    評論

    # re: 高性能WEB開發 - 圖片篇  回復  更多評論   

    2010-04-29 10:35 by kissjava
    好。
    就是這字看得累。呵呵

    # re: 高性能WEB開發 - 圖片篇  回復  更多評論   

    2010-04-29 10:44 by BearRui(AK-47)
    @kissjava
    不好意思,blogjava的編輯器不太好用,老是編輯的不好。以后的文章就全部用google doc來編輯,然后直接html copy 到blogjava中,就不會出現這種情況了。呵呵

    # re: 高性能WEB開發 - 圖片篇  回復  更多評論   

    2010-04-30 22:54 by 心夢帆影
    ”五、IE6下緩存背景圖片 “
    其他的瀏覽器(如IE7、Firefox)怎么緩存圖片?
    有沒有研究過,請交流一下。

    # re: 高性能WEB開發 - 圖片篇  回復  更多評論   

    2010-04-30 23:50 by BearRui(AK-47)
    @心夢帆影
    其他瀏覽器背景圖片與一般的圖片一樣緩存的,只有IE6下是有BUG,才需要進行特殊處理。

    # re: 高性能WEB開發 - 圖片篇  回復  更多評論   

    2010-10-02 13:47 by iconpng
    哈,我的網站用的就是VML,VML不僅可以解決IE6 瀏覽器png圖片灰色背景的問題,還能解決圖片縮小產生鋸齒的問題。。。

    # re: 高性能WEB開發 - 圖片篇  回復  更多評論   

    2010-10-21 16:56 by 奎彤
    博主有沒有什么比較推薦的圖片壓縮類庫,想做一個讓管理人員可以在后臺管理上傳圖片時直接壓縮的功能。

    # re: 高性能WEB開發 - 圖片篇  回復  更多評論   

    2010-10-27 13:53 by 10V
    真不錯~~~很實用,收藏了

    # re: 高性能WEB開發 - 圖片篇  回復  更多評論   

    2011-05-07 22:08 by skyzhang
    ding

    # re: 高性能WEB開發 - 圖片篇[未登錄]  回復  更多評論   

    2011-08-18 11:03 by wangjie
    頂一下
    主站蜘蛛池模板: 亚洲国产精品无码久久久秋霞1| 国产精品成人69XXX免费视频| 免费av片在线观看网站| 免费成人在线观看| 国产亚洲精彩视频| 又粗又大又硬又爽的免费视频| 亚洲色少妇熟女11p| 成人毛片免费观看| 亚洲中文字幕无码久久| 日韩视频在线免费观看| 亚洲爆乳无码精品AAA片蜜桃| 日韩高清免费在线观看| 九九免费精品视频在这里| 亚洲国产天堂久久综合| 久久九九免费高清视频| 亚洲不卡中文字幕无码| 亚洲精品免费在线观看| 亚洲三级视频在线观看| 女人18毛片免费观看| 大桥未久亚洲无av码在线| 高清在线亚洲精品国产二区| 国产免费牲交视频免费播放| 亚洲AV成人精品网站在线播放| 亚洲黄色免费网址| 亚洲精品国产高清在线观看| 日批日出水久久亚洲精品tv| 手机看片国产免费永久| 亚洲第一永久在线观看| 尤物永久免费AV无码网站| A毛片毛片看免费| 91亚洲va在线天线va天堂va国产 | 一级做a爰片久久毛片免费看| 亚洲中文字幕无码一区| 97免费人妻无码视频| 337p日本欧洲亚洲大胆人人| 久久亚洲高清综合| 亚洲免费视频观看| 男女超爽视频免费播放| 亚洲成人免费在线| 国产黄色片在线免费观看| 久久青青草原国产精品免费|