圖片的HTTP請求總結,web圖片http請求匯總,網頁圖片預加載

圖片的http請求,有很多種情況,那么究竟什么情況下面不會發生請求呢?下面我用案例一一列舉一下,希望對你深入了解http圖片請求有所幫助。

1.隱藏圖片

結論:只有Opera不產生請求。 注意:用visibility: hidden隱藏圖片時,在Opera下也會產生請求

2.重復圖片


所有瀏覽器都只產生一次請求

3.重復背景

<style type="text/css">
    .test1 { background: url(A.jpg) }
    .test2 { background: url(A.jpg) }
</style>
<div class="test1">test1</div>
<div class="test2">test2</div>
結論:所有瀏覽器都只產生一次請求。

4. 不存在的元素的背景

    <style type="text/css">
    .test1 { background: url(img/A.jpg)}
    .test2 { background: url(img/B.jpg)} /* 頁面中沒有class為test2的元素 */
</style>
<div class="test1">test1</div>
背景僅在應用的元素在頁面中存在時,才會產生請求。這對CSS框架來說,很有意義。

5. 隱藏元素的背景

<style type="text/css">
    .test1 { background: url(A.jpg); display: none; }
    .test2 { background: url(B.jpg); visibility: hidden; }
</style>

<div class="test1">test1</div>
結論:Opera和Firefox對于用display: none隱藏的元素背景,不會產生HTTP請求。 僅當這些元素非display: none時,才會請求背景圖片。

6. 多重背景

<style type="text/css">
    .test1 { background: url(A.jpg); }
    .test1 { background: url(B.jpg); }
</style>
<div class="test1">test1</div>

上面這段代碼的http請求,只會請求http2.jpg這一張圖片,原因是test1的class把上面的給覆蓋掉了,所有只請求后面的一張圖片!

<style type="text/css">
    .test1 { background-image:url("A.jpg"),url("B.jpg"); }
</style>
<div class="test1">test1</div>
結論:webkit引擎瀏覽器對背景圖都請求,是因為支持CSS3中的多背景圖。

7. hover的背景加載

<style type="text/css">
    a.test1 { background: url(A.jpg); }
    a.test1:hover { background: url(B.jpg); }
</style>
<a href="#" class="test1">test1</a>
結論:觸發hover時,才會請求hover狀態下的背景。不觸發的話,只請求默認的背景圖片。

8. JS里innerHTML中的圖片

<script type="text/javascript">
    var el = document.createElement('div');
    el.innerHTML = '![](A.jpg)';
    //document.body.appendChild(el);
</script>
結論:只有Opera不會馬上請求圖片。 注意:當添加到DOM樹上時,Opera才會發送請求

9. 圖片預加載

最常用的是JS方案:

<script type="text/javascript">
    new Image().src = 'A.jpg';
    new Image().src = 'B.jpg';
</script>

在無JS支持的環境下,可以采用隱藏元素來預加載:

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 173,595評論 25 708
  • 問答題47 /72 常見瀏覽器兼容性問題與解決方案? 參考答案 (1)瀏覽器兼容問題一:不同瀏覽器的標簽默認的外補...
    _Yfling閱讀 13,815評論 1 92
  • 轉載于:http://mrpeak.cn/blog/http2/ HTTP 2.0的那些事 在我們所處的互聯網世界...
    柒黍閱讀 2,380評論 0 8
  • 前端開發面試知識點大綱: HTML&CSS: 對Web標準的理解、瀏覽器內核差異、兼容性、hack、CSS基本功:...
    秀才JaneBook閱讀 2,570評論 0 25
  • 她的記憶里總有這樣一個夜晚,長長的無人的街道,昏暗的燈光,凄凄的風,樹影投在墻壁上,看似鬼影幢幢,她一個人在城市中...
    慕卿卿閱讀 149評論 0 0