Showing posts with label jQuery.Preload. Show all posts
Showing posts with label jQuery.Preload. Show all posts

Tuesday, January 29, 2008

jQuery.Preload

Introduction

This is an advanced multi-functional preloader, that has 4 modes integrated. Each mode suits a different, common situation.

Modes and settings

The modes are:
  • URL
    Preload a JS array of static URLs.
     related settings:
    •  base: This string is prepended to the URLs.
    •  ext: This string is appended to the end of each URL in the array.
  • Rollover
    Preload based on DOM images, slightly modifying their src.  Can be used for rollovers, or for image-thumb.
     related settings:
    •  find: String or regex that matches part of the srcs.
    •  replace: Replacement to the matched part, to generate the alternate URL.
  • Placeholder
    Take regular images and set a placeholder image while they load. Show each original image when fully loaded. Allows sequential loading with a threshold.
     related settings:
    •  placeholder: URL of the temporal image shown while loading.
    •  notFound: Optional image to show if a given image failed to load.
  • Link
    Preload images that appear in the href matched links.
     related settings: none.
There's also a threshold setting, that determines how many images are preloaded simultaneously, it is 2 by default.

Placeholder+Rollover Mode
Since 1.0.6, you can combine these 2 modes, for another common use.
If you have many images in a page, you might want to load a lighter version of them first, and then sequentially load and replace the real images.
To achieve this, use the light versions in the html, then preload the heavy ones as if they were rollover images(find+replace).
If you set 'placeholder' to true, each preloaded image will be set instead once it loads.

Callbacks

The hash of settings can also contain callback functions for 3 important moments of the preloading proccess.
They receive a hash of data, with information about the related image and the overall process.
The callbacks are:
  • onRequest
    Called when requesting a new image.
  • onComplete
    Called when a request is complete.
  • onFinish
    Called when all images are fully preloaded.

Hash of data for the callbacks

The first argument of the callbacks will be a hash.
It contains the following information:
  • loaded
    how many images were preloaded successfully.
  • failed
    how many images failed the preloading.
  • next
    0-based index of the next image to preload.
  • index
    0-based index of the current image.
  • done
    amount of preloaded images ( loaded + failed ).
  • found
    whether the last image could be preloaded or not.
  • total
    amount of images to preload overall.
  • image
    URL of the related image.
  • original
    The original source related to this image.

Troubleshooting

IE throws a "stack overflow" error.

I worked around this limitation of IE on 1.0.6.
If you still get this alert, you'll need to modify $.preload.gap, which is 14 by default. Reduce this number by 1 until it works. You need to exit the site each time, to be sure it works.
Try not to touch the original code, modify it from the outside.

I have many images and they seem to get un-cached

Try setting the option 'enforceCache' to true (+1.0.8).


Links