2013-04-11 62 views
0
var img = new Image(); 
$(img).attr('src', "<?php echo $image_url; ?>"); 

$(window).load(function(e){ 
    resetImageSize(img); 
    td.css('background-image', 'url("<?php echo $image_url; ?>")'); 
}); 

$(window).resize(function(e){ 
    resetImageSize(img); 
}); 

function resetImageSize(img){ 
    var wr = $("#wrapper"); 
    var td = $("#wrapper td"); 

    if(img.width > wr.width() || img.height > wr.height()){ 
     td.css('background-size', 'contain'); 
    } else { 
     td.css('background-size', img.width); 
    } 
} 

我怎麼知道?請問以下會導致兩個HTTP請求嗎?

+3

試試看吧?使用Chrome瀏覽器中的網絡標籤查找。 – PhonicUK 2013-04-11 09:06:42

回答

2

如果你想知道你的應用程序做了多少個http請求,你可以使用web瀏覽器的開發工具。

與谷歌瀏覽按F12鍵,然後轉到網絡面板

您的瀏覽器將使用他的緩存的第二個請求,他會告訴你在網絡面板的

0

一種方式的結果字段知道輸入了多少個http請求就是查看服務器日誌。

0

只要客戶端沒有在瀏覽器上禁用緩存,服務器就應該響應緩存已被用於第二個請求。您可以通過使用Net面板在Firebug中分析您的頁面來測試。您應該看到第一個請求的圖像下載以及第二個請求的304 Resource Not Modified。

+0

肯定'304'是一個_server side_response,表示緩存的版本仍然合適?這仍然是另一個HTTP請求。如果瀏覽器決定先發制人地緩存它(基於之前的緩存控制頭),那麼你不會看到第二個請求。 – Alnitak 2013-04-11 09:09:07

+0

@Alnitak謝謝你的進一步信息,我沒有在我的迴應中表明這一點。 – 2013-04-11 09:13:28