在onload事件前獲取圖片的寬高

有時候在獲取從後臺的圖片時,要對圖片進行一系列的處理,才渲染出來
我們要解決的是沒有緩存而又快速的相比onload更快的方式去獲取圖片的寬高,接下來上代碼
通過定時循環檢測獲取:
// 記錄當前時間戳
var start_time = new Date().getTime()
// 圖片地址 後面加時間戳是爲了避免緩存
 var cutSrc = window.ctx + '/touchsys/terminal/showCapture?terminalId=' + terminalId + '×trap=' +
 Math.random();
// 創建對象
var img = new Image()
// 改變圖片的src
 img.src = cutSrc;
// 定時執行獲取寬高
var check = function(){
 // 只要任何一方大於0
 // 表示已經服務器已經返回寬高
    if (img.width>0 || img.height>0) {
        var diff = new Date().getTime() - start_time;
        document.body.innerHTML += '
        from:check : width:'+img.width+',height:'+img.height+', time:'+diff+'ms';
        clearInterval(set);
    }
}
var set = setInterval(check,40)
// 加載完成獲取寬高
img.onload = function(){
    var diff = new Date().getTime() - start_time;
    document.body.innerHTML += 'from:onload : width:'+img.width+',height:'+img.height+', time:'+diff+'ms';
        //在裏面在做一些我們想處理的邏輯
};
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章