圖片加載速度問題(轉)

製做的HTML5滑屏頁面速度很慢,找了一些文章,但願解決問題。css

1、瀏覽器

一、控制jpg圖片的質量  緩存

因爲質量高的jpg格式圖片比較清晰,色彩更鮮豔,很多人就用這種圖片來美化header,其實這對速度的影響是很大的,由於打開一個頁面首先加載的就是header,header加載時間太長的話,很容易使第一次來的訪客反感,還有一種狀況是頁面上的小圖標,有些站長過於追求美觀,因而頁面上的小圖標也用高質量的圖片來作,這是很不必的。服務器

 

二、儘可能使用gif格式  app

jpg格式在在展現色彩豐富的大圖片是效果很好,但作網頁圖標的話,gif纔是最好的格式。由於在展現像素級的細節是,gif的效果比jpg好了不知多少倍,你能夠嘗試一下,截取一幅含有12px或14px文字的圖,分別保存爲256色的gif和質量爲80的jpg,對比一下文字的顯示效果,gif確定比jpg清晰不少,而體積卻小了很多。因此,在製做小圖標或帶有小字體的圖片時,優先使用gif格式,這裏還有說到一個顏色數的問題,gif格式能顯示的顏色數量最多爲256色,其實對不包含大量色彩漸變的圖片來講,已是很是足夠了,所以,在製做顏色比較少的gif時,嘗試一降低低顏色數,只要效果能過得去就好了。異步

 

三、如何插入裝飾性圖片  性能

這裏要講的不是簡單的用img標籤插入圖像,用這種方法插入頁面小圖標等裝飾性圖片弊端是很是大的。首先,用img標籤插入的圖片不能經過簡單的方法實現變換效果,在這裏,美化效果要打個折扣,其次,用img插入的圖片,若是圖片不在瀏覽器緩存裏,並且不重複出現的話,會大大增長http請求數。由於img標籤理論上是出現一次載入一次的。其三,用img標籤不利於調整圖片位置,若是一個圖片,須要在header靠右和footer靠左這兩個位置出現兩次,你就須要爲它寫兩次css。其四,用img標籤插入圖片不利於整合,整合圖片能夠大大減小http請求數,到底整合圖片有什麼技巧呢?看下節。字體

 

四、頁面背景圖片的處理方法  spa

不少人喜歡用圖片作頁面元素的hover變換效果,可是卻沒有把相關的圖片整合,致使一些變換效果有事會由於圖片載入失敗而失色。咱們能夠把針對某個效果的圖片都整合成一個文件,在css裏用background-position屬性調整圖片位置。這種作法的好處是背景只須要一次http請求,圖片能夠重複調用,也有利於圖片變換。看到這裏,你知道裝飾性圖片應該怎麼插入了嗎?對,用css。.net

五、插圖儘可能使用外鏈  

因爲服務器性能的限制,通常非獨立主機都會限制單ip的http請求數,若是一個頁面裏http請求太多的話,頁面每每要等好久才能徹底載入。特別是圖片,若是太長時間不能加載的話,瀏覽器就會斷開與服務器的連接,這是就須要在點擊一下顯示圖片才能顯示出來,比較好的支持外鏈的相冊有picasa、flickr和國內的yupoo等。這樣作不但能減輕服務器壓力,節約流量,更重要的是,我不相信大部分站長用的服務器比那些專業的在線相冊快。

 

2、

連接:http://www.zhihu.com/question/29764566/answer/45527133
來源:知乎

一是內存限制。每一個app的可利用內存是有限制的,而圖像是比較消耗資源的,因此只能分次加載,每次加載固定數量的圖片,加載新圖片時把不用的圖片釋放掉。這樣能夠節省內存。
二是異步加載。頁面先顯示,圖片則下載完成(或命中)後才顯示。(其中會有一些緩存策略,不表)
三是分頁請求。即按需請求,一次只請求當前頁面中須要出現的圖片,當頁面發生滾動或者切換時,再請求剩餘圖片。
 
連接:http://www.zhihu.com/question/19762217/answer/18047143
來源:知乎

緩存 (cache.manifest; 亦可考慮使用localStorage 或是 indexedDB 等)
- 異步加載
- 用data:image/gif;base64直接嵌入到css文件裏來減小http請求
- 按照屏幕尺寸按需加載響應的圖片尺寸 (可用 css media query之類)
- 壓縮圖片質量,經過添加一層紋理蒙版來使之不那麼刺目
- 換更快的服務器或是CDN
 

3、25種提升網頁加載速度的方法和技巧(轉)

延遲加載、分配加載

相關文章
相關標籤/搜索