JAVASCRIPT   31
preload js
Guest on 6th February 2023 01:45:14 PM


  1. var preload = function(resources, options /* afterEach, after, width */) {
  2.         var resources = resources.slice(),
  3.                         finished = false,
  4.                         numLoaded = 0;
  5.        
  6.         if (!options) options = {};
  7.        
  8.         var afterEach = options.afterEach || function() {},
  9.                         after = options.after || function() {},
  10.                         width = options.width || 6;
  11.        
  12.         var loadNext = function() {
  13.                 var filename = resources.shift();
  14.                 if (!filename)  {
  15.                         if (!finished) {
  16.                                 finished = true;
  17.                                 after();
  18.                         }
  19.                         return;
  20.                 }
  21.                 var imageExp = /.jpg|.jpeg|.gif|.png|.bmp|.tif|.tiff/,
  22.                                 audioExp = /.mp3/,
  23.                                 obj, embedTag;
  24.                
  25.                 if (filename.match(imageExp)) {
  26.                         obj = new Image();
  27.                 } else {
  28.                         embedTag = true;
  29.                         obj = document.createElement('iframe');
  30.                 }
  31.                
  32.                 obj.onload = function() {
  33. //                      document.body.removeChild(this);
  34.                         afterEach(filename);
  35.                         loadNext();
  36.                 }
  37.                
  38.                 obj.onerror = function(e) {
  39.                         $z.log("error");
  40.                 }
  41.                
  42.                 if (embedTag) {
  43.                         obj.style.width = "0px";
  44.                         obj.style.height = "0px";
  45.                         obj.style.border = "0";
  46.                         obj.style.margin = "0";
  47.                         obj.style.padding = "0";
  48.                         obj.src = filename;
  49.                        
  50.                         document.body.appendChild(obj);
  51.  
  52.                 } else {
  53.                         obj.src = filename;
  54.                 }
  55.         }
  56.        
  57.         var times = Math.min(width, resources.length);
  58.         while(times--) {
  59.                 loadNext();
  60.         }
  61. };

Raw Paste

Login or Register to edit or fork this paste. It's free.