2013-04-11 60 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