Rumah  >  Artikel  >  hujung hadapan web  >  Perkongsian pelbagai kaedah pelaksanaan pramuat imej js_kemahiran javascript

Perkongsian pelbagai kaedah pelaksanaan pramuat imej js_kemahiran javascript

WBOY
WBOYasal
2016-05-16 15:14:441344semak imbas

Secara amnya terdapat beberapa cara untuk pramuat imej

1.html teg atau imej memuatkan css

Jelas sekali kami boleh pramuat imej menggunakan teg img atau melalui atribut imej latar belakang teg tersebut. Tetapi untuk mengelakkan memuatkan terlalu banyak gambar untuk kali pertama dan menjejaskan pengalaman. Biasanya yang terbaik adalah untuk memuatkan dokumen selepas dokumen itu diberikan (menggunakan window.onload, dsb.).

2. Js tulen untuk melaksanakan pramuat

Javascript Empty City Plan-Code melaksanakan pramuat imej Contoh pramuat lengkap ialah

function preloadimages(arr){  
  var newimages=[], loadedimages=0
  var postaction=function(){} //此处增加了一个postaction函数
  var arr=(typeof arr!="object")? [arr] : arr
  function imageloadpost(){
    loadedimages++
    if (loadedimages==arr.length){
      postaction(newimages) //加载完成用我们调用postaction函数并将newimages数组做为参数传递进去
    }
  }
  for (var i=0; i<arr.length; i++){
    newimages[i]=new Image()
    newimages[i].src=arr[i]
    newimages[i].onload=function(){
      imageloadpost()
    }
    newimages[i].onerror=function(){
      imageloadpost()
    }
  }
  return { //此处返回一个空白对象的done方法
    done:function(f){
      postaction=f || postaction
    }
  }
}

Prinsipnya adalah untuk mencipta objek Imej dalam gelung, tetapkan src objek kepada imej yang ditentukan, dan kemudian pantau penyiapan pemuatan imej onload = function(){imageloadpost()}. , imageloadpost akan dilaksanakan. Ternyata IE6 masih menghadapi masalah: jika imej pramuat sudah ada dalam ingatan, acara img.onload tidak akan dicetuskan lagi. Tetapi IE7+ tiada masalah. Tiada masalah dengan penyemak imbas lain, jadi acara mendengar img.onload di atas tidak mempunyai masalah keserasian.

3.Ajax melaksanakan pramuat

Permintaan Ajax boleh meminta sebarang data, dan gambar tidak terkecuali. Mari lihat pramuat js/css

// XHR to request a JS and a CSS 
    var xhr = new XMLHttpRequest(); 
    xhr.open('GET', 'http://domain.tld/preload.js'); 
    xhr.send(''); 
    xhr = new XMLHttpRequest(); 
    xhr.open('GET', 'http://domain.tld/preload.css'); 
    xhr.send(''); 

Pramuat ajax imej sebenarnya sama dengan pramuat imej js tulen

new Image().src = "http://domain.tld/preload.png"; 

Cuma, penjelasan di sini ialah pemuatan ajax. Ia boleh difahami bahawa imej baharu adalah semua permintaan dapatkan ajax.

Di atas adalah keseluruhan kandungan artikel ini, saya harap ia akan membantu semua orang untuk memahami pramuat imej js.

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn