.hiddenImagePanel {
    position:absolute;
    top:-1000px;
    left:-1000px;
}

On Feb 9, 1:14 am, darkflame <[email protected]> wrote:
> Thats not a bad idea, it didnt accore to me to simply load it by
> positioning it off screena and attaching a listener.
>
> When you hide it offscreen do you specify negative co-ordinates? Or do
> you have to put it to the right and stop horizontal scrolling?
>
> I assume checking offset width still works even if its offscreen?
>
> Cheers,
> Thomas
>
> On Feb 9, 6:46 am, davidroe <[email protected]> wrote:
>
> > I have only skimmed this thread, and I've not looked at the game, but
> > here is my 2c.
>
> > my situation is a little different - I'm not pre-loading images per
> > se, but I am loading them in the background. I use a hidden panel
> > (hidden by being positioned off screen rather than display:none) which
> > I load images onto. each image has a load listener so that I can
> > process it when it arrives and move it to the appropriate part of the
> > DOM.
>
> > on to your problem.
>
> > could you maintain an array of image URLs, load the first image,
> > attach a load listener and attach it to a hidden panel? when the image
> > has loaded, repeat the process to load the next one. that way, you
> > ensure that they only load one at a time (less blocking behaviour in
> > the browser). once you know an image has been loaded, you are free to
> > use new Image(url) and know reliably that the image will be loaded
> > from cache.
>
> > HTH,
> > /dave
>
> > On Feb 8, 7:04 am, darkflame <[email protected]> wrote:
>
> > > Well, I know prefetch is working to some extent (at least, in Chrome
> > > and Firefox), as I can watch it prefetching
> > > rather large volumes of images that arnt used in the html at all.
> > > All of those images must have been triggered by the prefetch loop.
>
> > > Still, I'll read over the Mozzilla doc, maybe things have changed a
> > > little since javascript has been more widely used.
>
> > > On Feb 6, 3:12 pm, gregor <[email protected]> wrote:
>
> > > > @Litty: yes, I think you are right, my ignorance. Image.prefetch()
> > > > will causes the image to be loaded into browser cache. You then use
> > > > the same URL to instantiate an Image object later in code, and
> > > > hopefully the image binary will be already downloaded. This old
> > > > Mozzilla doc describes the process:
>
> > > >http://devedge-temp.mozilla.org/viewsource/2003/link-prefetching/inde...
>
> > > > The doc suggests the behavior darkflame described in OP, namely,
> > > > browser is busy downloading all the prefetches it finds in the page.
>
> > > > @darkflame:
>
> > > > > b) If I do have to load, say, upto 10 images that have to be seperate,
> > > > > is it better to just loop over a list of them prefetching and leave it
> > > > > upto the browser....or should I put a timer and trigger a load every,
> > > > > say, 5 seconds ?
> > > > > (or dosnt it make much difference).
>
> > > > My reading of the Mozzilla doc is that the browser will notice all the
> > > > prefetch tags when it loads the page, and it will then get busy
> > > > downloading them. So I have doubts whether where you put the
> > > > Image.prefetch(url) in execution logic makes any difference, i.e. you
> > > > do not have fine tune programmatic control over prefetch so you can't
> > > > code to prefetch first 10, then later trigger prefetching next 10. For
> > > > example the Mozzilla doc states "The link tag has to be inside the
> > > > head tag to make prefetching work" etc.
>
> > > > > On Feb 6, 9:14 am, Litty Preeth <[email protected]> wrote:
>
> > > > > > > > "You are thinking of loading 20MB of images into the DHTML DOM 
> > > > > > > > of you
> > > > > > > > application"
>
> > > > > > > > Am I? Does the DOM keep them there even when not displayed?
> > > > > > > > These images certainly wouldnt be displayed all at once. 1 or 2 
> > > > > > > > at a
> > > > > > > > time at most.
>
> > > > > > > I'm not absolutely sure, but I think if you load an image it is
> > > > > > > basically attached to a document, whether the browser caches it or
> > > > > > > not, and whether it is currently visible of not. You don't 
> > > > > > > control the
> > > > > > > browser cache, I mean I don't think you can tell it to 
> > > > > > > conveniently
> > > > > > > download all your images and store them neatly on disk until you 
> > > > > > > need
> > > > > > > to display them for example.
>
> > > > > > ah, pig.
> > > > > > I thought that was exactly that prefetch was doing -sigh-
> > > > > > I thought it loaded it to ram first, then the browser keeps a copy 
> > > > > > in
> > > > > > its cache for reloading if needed.
> > > > > > -sigh-
> > > > > > That does change things indeed then.
>
> > > > > > AFAIK the prefetch creates an IMG element but its not attached to 
> > > > > > the DOM.
>
> > > > > > - Litty
>
> > > > > > On Fri, Feb 6, 2009 at 1:03 PM, darkflame <[email protected]> 
> > > > > > wrote:
>
> > > > > > > > > "You are thinking of loading 20MB of images into the DHTML 
> > > > > > > > > DOM of you
> > > > > > > > > application"
>
> > > > > > > > > Am I? Does the DOM keep them there even when not displayed?
> > > > > > > > > These images certainly wouldnt be displayed all at once. 1 or 
> > > > > > > > > 2 at a
> > > > > > > > > time at most.
>
> > > > > > > > I'm not absolutely sure, but I think if you load an image it is
> > > > > > > > basically attached to a document, whether the browser caches it 
> > > > > > > > or
> > > > > > > > not, and whether it is currently visible of not. You don't 
> > > > > > > > control the
> > > > > > > > browser cache, I mean I don't think you can tell it to 
> > > > > > > > conveniently
> > > > > > > > download all your images and store them neatly on disk until 
> > > > > > > > you need
> > > > > > > > to display them for example.
>
> > > > > > > ah, pig.
> > > > > > > I thought that was exactly that prefetch was doing -sigh-
> > > > > > > I thought it loaded it to ram first, then the browser keeps a 
> > > > > > > copy in
> > > > > > > its cache for reloading if needed.
> > > > > > > -sigh-
> > > > > > > That does change things indeed then.
>
> > > > > > > > > Again, not at once.
> > > > > > > > > Surely a staggered download they wouldnt have a problem with?
> > > > > > > > > Emulating, say, what it would expect from a user browseing 
> > > > > > > > > DeviantArt?
>
> > > > > > > > yeah, the staggered download is basically the idea of the maze 
> > > > > > > > - each
> > > > > > > > time you move to next location you've only got one locations 
> > > > > > > > worth of
> > > > > > > > images to fetch. Or if it worked fast enough you could fetch 
> > > > > > > > all the
> > > > > > > > required images for the adjoining locations so they would be 
> > > > > > > > ready to
> > > > > > > > go instantly. It depends entirely on no of image bytes per 
> > > > > > > > location.
>
> > > > > > > Yes, I looks like I'll be switching to a 
> > > > > > > as-you-go-along-it-loads-the-
> > > > > > > next-rooms approach.
> > > > > > > Allthough...
>
> > > > > > > > Point is doing it this way old images are thrown away and can be
> > > > > > > > garbage collected as you go, so you are not accumulating images 
> > > > > > > > in
> > > > > > > > memory. It's stable. (assuming I'm right about the how this 
> > > > > > > > works of
> > > > > > > > course).
>
> > > > > > > ...I'm not sure there will be much that can be chucked away in 
> > > > > > > this
> > > > > > > game.
> > > > > > > My engine is able to remove items easily enough, but for this game
> > > > > > > items from the start of the game are still usefull at the end, so
> > > > > > > theres only a few case's when images can be removed never to be
> > > > > > > recalled.
>
> > > > > > > > > ". The point of
> > > > > > > > > the composite image strip is to fetch several images in one 
> > > > > > > > > request
> > > > > > > > > since they come in a single binary file. "
>
> > > > > > > > > Yes, I understand the point of them, and I think image 
> > > > > > > > > bundles are a
> > > > > > > > > great idea.
> > > > > > > > > (In fact, online in general, theres probably a lot of wasted 
> > > > > > > > > bandwidth
> > > > > > > > > used on little UI elements on webpages..like 5kb gifs etc....)
> > > > > > > > > In this specific case though they arnt approperate.
> > > > > > > > > Not unless I got the server to dynamically splice the images 
> > > > > > > > > together
> > > > > > > > > and the client to cut them up.
> > > > > > > > > But thats beyond the scope of the projects timeframe.
>
> > > > > > > > This is exactly what the GWT ImageBundle does (and what has 
> > > > > > > > been best
> > > > > > > > practice in web design for years). Annoyingly for you GWT only 
> > > > > > > > does
> > > > > > > > this once per module because Bruce says they can't think of a 
> > > > > > > > single
> > > > > > > > use case for needing separate ImageBundles!  My bet is that if 
> > > > > > > > you
> > > > > > > > just start loading all the images as you are suggesting, you 
> > > > > > > > will have
> > > > > > > > to attach them to the DOM somewhere, so ultimately what you 
> > > > > > > > will be
> > > > > > > > doing is building the entire game at the same time as the 
> > > > > > > > player is
> > > > > > > > trying to play the first locations. So my betting is three to 
> > > > > > > > one on
> > > > > > > > a) whilst this build is going on the game play will be badly 
> > > > > > > > affected
> > > > > > > > at precisely the time you least want it to, and b) once you've 
> > > > > > > > loaded
> > > > > > > > it all it will run like a dog anyway.
>
> > > > > > > Yes, I think your right there.
> > > > > > > But I think cutting up 30MB of images client side might actualy 
> > > > > > > raise
> > > > > > > the required specs of the game :P
>
> > > > > > > > I may well be wrong, but if I'm not, and you looked at the maze 
> > > > > > > > idea
> > > > > > > > as plan B, then using image strips a la ImageBundle will make 
> > > > > > > > the game
> > > > > > > > run much faster and smoother, so the effort might well be 
> > > > > > > > critical in
> > > > > > > > the end. This is after all the heart of your technical 
> > > > > > > > challenge. This
> > > > > > > > has been done so many times I expect you will find some 
> > > > > > > > javascript
> > > > > > > > code that cuts them up (or maybe CSS stuff) to crib from 
> > > > > > > > somewhere and
> > > > > > > > some server side tools to pack the image strips as well.
>
> > > > > > > I may have miss-understoof how image bundles worked completely 
> > > > > > > here
> > > > > > > though, as I originaly thought they were fixed at compile-time.
> > > > > > > From the perspective of people editing the game content 
> > > > > > > (images/text),
> > > > > > > what would they have to do?
> > > > > > > Run a script file of some sort every time they changed an image 
> > > > > > > in the
> > > > > > > game?
> > > > > > > Or would the
>
> ...
>
> read more »
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"Google Web Toolkit" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to 
[email protected]
For more options, visit this group at 
http://groups.google.com/group/Google-Web-Toolkit?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to