First, I agree with Robert-- caching should be left up to the system.
Second, the "display something simple while waiting for something complex"
functionality you want is already in WebSpace, using VRML 1.0 objects. You'd
just specify:
DEF Teapot LOD {
range [ 10, 100, 1000 ]
WWWInline { name "http://obscure.com/realcoolteapot.wrl"
WWWInline { name "http://vrml.org/generic/fancyteapot.wrl"
WWWInline { name "http://vrml.org/generic/teapot.wrl"
}
Think of LOD as a way of specifying a series of representations, ordered from
most desireable to least desireable, with the ranges being a weird way of
specifying how desireable each is.
If WebSpace already has the lower LOD's fetched, it will display them while
fetching the higher LOD. Once Webspace does caching, that should get you the
behavior you're looking for; if the generic teapot is in the cache, it will
be displayed while the obscure teapot is fetched. Webspace also allows the
user to control how much detail they want to see when moving around; if the
user chooses low detail then maybe the realcoolteapot will never be fetched.