- From: Charles Pritchard <chuck@jumis.com>
- Date: Wed, 14 Dec 2011 17:16:43 -0800
- To: Ian Hickson <ian@hixie.ch>
- CC: Jonas Sicking <jonas@sicking.cc>, Glenn Maynard <glenn@zewt.org>, Adrian Bateman <adrianba@microsoft.com>, "Web Applications Working Group WG (public-webapps@w3.org)" <public-webapps@w3.org>, Feras Moussa <ferasm@microsoft.com>
On 12/14/2011 5:10 PM, Ian Hickson wrote:
> On Wed, 14 Dec 2011, Jonas Sicking wrote:
>> On Wed, Dec 14, 2011 at 4:55 PM, Ian Hickson<ian@hixie.ch> wrote:
>>> On Wed, 14 Dec 2011, Glenn Maynard wrote:
>>>> The problem isn't the cost of the URL mapping, it's the cost of
>>>> keeping the backing Blob around. If you drag around Google Maps for
>>>> a long time, and it used object URLs to load its tile images, it'd be
>>>> very bad if the browser had to keep every tile graphic around for the
>>>> lifetime of the page.
>>> Browsers do keep them around for the lifetime of the page, in their
>>> HTTP cache.
>> This isn't true at least for Firefox. We allow resources to be kicked
>> out of the HTTP cache even if the page that originally caused the
>> resource to be loaded is still being used.
> I guess. For pages that are dealing with bazillions of images then it
> makes sense to have the page discard the blobs once they're no longer in
> use. But I am very skeptical about an API that makes that happen
> automatically, because it really makes the API as a whole quite brittle.
Seems to me that onerror hooks are handy in this case, but that does
create more work.
I've typically used setAttribute('data-bloburl', url) when working with
images, running revoke prior to doing a new setAttribute.
I've not started using onerror: I could certainly see using onerror and
some other internal pointer, setAttribute('data-position', posinset) to
refresh a blob url, recovering it when it breaks.
That doesn't help the CSS case, however. Using automatic revocation
with CSS makes no sense at all, I think the use here is simply for
one-time img.src setters.
I also think that it can be accomplished without the Boolean, by
ensuring that revoke does not take effect until the end of the event loop.
-Charles
Received on Thursday, 15 December 2011 01:17:14 UTC