今天看到两个很好玩的用法:
1、不请求文件,只请求文件大小的方法
2、计算文件大小,不用if去判断,巧妙的用Math.log来解决
<a href="001.html" class="fetchSize">FirstTrickshot</a> <br />
<a href="034.html" class="fetchSize">This Trickshot</a> <br />
<a href="assets/img/ball.png" class="fetchSize">Ball.png</a> <br />
<script>
// Loop all .fetchSize links
$('a.fetchSize').each(function(){
// Issue an AJAX HEAD request for each one
var link = this;
$.ajax({
type : 'HEAD',
url : link.href,
complete : function(xhr){
// Append the filesize to each
$(link).append(' (' + humanize(xhr.getResponseHeader('Content-Length')) + ')');
}
});
});
function humanize(size){
var units = ['bytes','KB','MB','GB','TB','PB'];
var ord = Math.floor( Math.log(size) / Math.log(1024) );
ord = Math.min( Math.max(0,ord), units.length-1);
var s = Math.round((size / Math.pow(1024,ord))*100)/100;
return s + ' ' + units[ord];
}
</script>