Luke, this is a great technique - thanks!
As far as my original question, I am still curious to find out the
following:
With the following preload function:
$.preloadImages = function()
{
for(var i = 0; i<arguments.length; i++)
{
img = new Image();
img.src = arguments[i];
}
}
does the browser completely download each image before the script changes
the source and begins the next download or is/can the image download be
interrupted by the variable being reassigned?
Anyone?
Luke Lutman wrote:
>
> Here's what I use:
>
> $(window).bind('load', function(){
> var preload = [
> '/images/assets/file/1.gif',
> '/images/assets/file/2.gif',
> '/images/assets/file/3.gif'
> ];
> $(document.createElement('img')).bind('load', function(){
> if(preload[0]) this.src = preload.shift();
> }).trigger('load');
> });
>
> This loads the images sequentially, so you don't have to worry
> interrupting one image with
> another. It's much nicer to your server too, because there won't be a
> barrage of image requests
> all at once.
>
> I'd also suggest waiting to start preloading until the page has finished
> loading. Right now,
> you're preloading at the same time the page is loading, which will make
> the page feel slow
> (especially if you're preloading a lot of images).
>
> Cheers,
> Luke
>
> PragueExpat wrote:
>> Using the method below to preload images, I have a simple question:
>>
>> The same variable (in this case 'img') is being used for all preloaded
>> images.
>> Img.src is used to tell the browser to make a call to the server to fetch
>> the image
>>
>> What if the connection to the server is slow (or the image is large) -
>> does
>> the script wait until the image is loaded before continuing or is there a
>> chance that the variable will be overwritten (because of the loop) and
>> its
>> source set to the next image before the first image is fully downloaded?
>>
>> I use this script and it works fine, but I would like to find out if a
>> potentially slow client might have different results.
>>
>> Thanks.
>>
>>
>> Sam Collett wrote:
>>> Perhaps you could use something like this:
>>>
>>> $.preloadImages = function()
>>> {
>>> for(var i = 0; i<arguments.length; i++)
>>> {
>>> img = new Image();
>>> img.src = arguments[i];
>>> }
>>> }
>>>
>>> Then you call it as soon as possible (it doesn't have to be in
>>> $(document).ready):
>>>
>>> $.preloadImages("foo.gif", "bar.gif");
>>> $(document).ready(function() { ... });
>>>
>>> On 28/09/06, Aljosa Mohorovic <[EMAIL PROTECTED]> wrote:
>>>> is there a preferred way to preload images when site uses jquery? how
>>>> do you usually preload images?
>>>>
>>>> Aljosa Mohorovic
>>>>
>>>> _______________________________________________
>>>> jQuery mailing list
>>>> [email protected]
>>>> http://jquery.com/discuss/
>>>>
>>> _______________________________________________
>>> jQuery mailing list
>>> [email protected]
>>> http://jquery.com/discuss/
>>>
>>>
>>
>
>
> --
> zinc Roe Design
> www.zincroe.com
> (647) 477-6016
>
> _______________________________________________
> jQuery mailing list
> [email protected]
> http://jquery.com/discuss/
>
>
--
View this message in context:
http://www.nabble.com/image-preloading-tf2351203.html#a8825812
Sent from the JQuery mailing list archive at Nabble.com.
_______________________________________________
jQuery mailing list
[email protected]
http://jquery.com/discuss/