On 2012-12-31, at 10:41 AM, Sherif Ramadan <theanomaly...@gmail.com> wrote:

> 
> 
> 
> On Mon, Dec 31, 2012 at 1:25 PM, Stewart Lord <ste...@ambitious.ca> wrote:
> 
> 
> On 2012-12-30, at 10:07 PM, Sherif Ramadan <theanomaly...@gmail.com> wrote:
> 
> > Sorry, that was poorly worded. I didn't mean to suggest that the each data
> > URI generates a transfer over TCP. What I'm saying is that there is a
> > caching disadvantage here since the initial JSON request itself can't be
> > cached (the one coming from http://prototype.php.net/images/elephpants.php).
> 
> The JSON request could be cached. It is designed to return a random 
> collection of images, so you would have to be willing to give up some 
> randomness, but there is no reason it couldn't be cached.
> 
> 
> Yes, the request to the script that returns the JSON containing the data URIs 
> could be cached if it wasn't dynamic, obviously. I'm not saying that it 
> couldn't. I'm saying the data URIs won't be cached by the browser. What 
> you're saying is that this is moot in this particular case and I agree :)
> 
>  
> 
> > For each of these data URIs the browser will consider it as a request even
> > though nothing is actually transferred over HTTP from the data URI,
> > obviously, but that's still not great. The reason being each data URI
> > requires encoding/parsing on every single request (that's extra time to
> > render the page that could be avoided).
> 
> Have you measured this? I don't think there is any significant overhead to 
> data URIs.
> 
> 
> Yes, and I never suggested that the overhead was significant. It takes 
> roughly 1ms to render those data URIs by looking at the HAR, which is not 
> significant at all. The minor point I was making here was mainly that data 
> URIs can't be cached and that leaves the disadvantage of the browser having 
> to start from scratch on every URI, which isn't always a bad trade off when 
> your data URIs pack less overhead than the HTTP request headers would 
> initially pack on top of your image. However, here it's the case that we have 
> a lot of them and the same overhead can be alleviated from the initial HTTP 
> header to the script that generates the JSON containing the data URIs in the 
> first place if it was just a single PNG file that could be cached in the 
> browser (avoiding one extra HTTP request to the PHP script generating that 
> JSON on every single request). It's not a huge savings, but in the long run 
> it does save at the very least that one extra TCP transfer along with the 
> very very minor rendering time caused by the data URIs. The overall savings 
> across thousands of daily requests across nearly 100 mirrors would be 
> significant, however.
> 
> Just my 0.0002 cents
> :)


I think I got the wrong impression when you said you strongly recommend 
replacing this. Sounds like its not really a concern then?

Rather than use a sprite, why not just add cache friendly headers to the 
elephant script? That would allow things to continue working with the Flickr 
backend.

Reply via email to