当前第2页 返回上一页
为了测试缓存效果,注意以下测试图片的url都不加时间戳
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | var img_url = 'upload/2013/13643608813441.jpg';
var img = new Image();
img.src = img_url;
if(img.complete){
alert('from:complete : width:'+img.width+',height:'+img.height);
}else{
img.onload = function(){
alert('from:onload : width:'+img.width+',height:'+img.height);
};
}
|
第一次执行,永远是onload触发

你再刷新,几乎都是缓存触发了

从缓存里读取图片的宽高不用说,非常方便快捷,今天我们要解决的是没有缓存而又快速的相比onload更快的方式去获取图片的宽高。我们常常知道有些图片虽然没有完全down下来,但是已经先有占位符,然后一点一点的加载。既然有占位符那应该是请求图片资源服务器响应后返回的。可服务器什么时候响应并返回宽高的数据没有触发事件,比如onload事件。于是催生了第四种方法
四、通过定时循环检测获取
看看以下例子,为了避免从缓存里读取数据,每一次请求都带时间戳:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 | var img_url = 'upload/2013/13643608813441.jpg?'+Date.parse(new Date());
var img = new Image();
img.src = img_url;
var check = function(){
document.body.innerHTML += '
from:check : width:'+img.width+',height:'+img.height+'
';
};
var set = setInterval(check,40);
img.onload = function(){
document.body.innerHTML += '
from:onload : width:'+img.width+',height:'+img.height+'
';
clearInterval(set);
};
|
相关教程推荐:CSS视频教程
以上就是js如何获取图片宽高的详细内容,更多文章请关注木庄网络博客!
返回前面的内容
相关阅读 >>
总结javascript中遍历数组的几种方法
javascript是什么端
head标签中有什么属性?
javascript 设计模式之单例模式
html中js是什么
javascript输出语句怎么打
javascript中声明变量的关键字是什么
vue框架是什么
节流阀和去抖动的基本实现方法介绍
javascript字符串转换为日期的方法
更多相关阅读请进入《javascript》频道 >>
人民邮电出版社
本书对 Vue.js 3 技术细节的分析非常可靠,对于需要深入理解 Vue.js 3 的用户会有很大的帮助。——尤雨溪,Vue.js作者
转载请注明出处:木庄网络博客 » js如何获取图片宽高