(Disclaimer: mi occupo di relazioni con gli sviluppatori a imgix, e risponderanno questo post in quanto si applica al nostro stack)
Hai assolutamente ragione che per un compl immagine etely uncached, ci sono più "hop" coinvolti per servire un'immagine. Per il primo utente a visualizzare un'immagine, ciò può comportare una latenza leggermente maggiore. Successivamente, tuttavia, l'immagine viene memorizzata nella cache sia dal nostro cluster di rendering che dalla CDN globale, il che rende le richieste successive per qualsiasi immagine basata sull'originale molto più velocemente. In entrambi i casi, il risparmio di byte derivante dal servire immagini di dimensioni corrette al browser sarà quasi sempre superiore a qualsiasi ulteriore latenza dalle richieste iniziali di un'immagine.
Ecco un semplice diagramma che mostra il flusso quando un'immagine non è ancora stata memorizzata nella cache:
┌─────────────────┐ 4. Origin responds
│ Your Origin │ with full-size
│ (S3/web folder) │ `dogs.png` image.
└─────────────────┘
▲ │
│ │
│ │
│ ▼
3. Image is not ┌─────────────────┐ 5. imgix caches the
cached at imgix, send │ imgix │ full-size image, then
request to origin for │ │ resizes it to 300px
`dogs.png` └─────────────────┘ wide and caches that
▲ │ derivative.
│ │
│ ▼
2. Image is not ┌─────────────────┐ 6. The imgix CDN
cached at CDN, │ imgix CDN (edge │ caches the 300px wide
forward to imgix │nodes worldwide) │ variant and serves it
rendering cluster. └─────────────────┘ to the browser.
▲ │
│ │
│ │
│ ▼
1. Browser requests ┌─────────────────┐ 7. The browser
`dogs.png?w=300` │ User's Browser │ receives and renders
│ │ 300px wide `dogs.png`.
└─────────────────┘
Una volta che l'immagine è stata memorizzata nella cache (dopo un singolo utente lo richiede), il ciclo diventa molto stretto:
2. The imgix CDN has ┌─────────────────┐
this variant cached, │ imgix CDN (edge │
and serves it to the │nodes worldwide) │
browser. └─────────────────┘
▲ │
│ │
│ │
│ ▼
1. Browser requests ┌─────────────────┐ 3. The browser
`dogs.png?w=300` │ User's Browser │ receives and renders
│ │ 300px wide `dogs.png`.
└─────────────────┘
Dopo l'immagine originale viene memorizzato nella cache al nostro gruppo di rendering, generando derivati è anche molto più veloce (in questo ca SE, una versione larga 600px), dal momento che non richiedono un viaggio supplementare per il server di origine:
3. Full-size image is ┌─────────────────┐ 4. imgix resizes the
already cached at │ imgix │ cached full-size image
imgix, no origin │ │ to 600px wide and
request needed. └─────────────────┘ caches that
▲ │ derivative.
│ │
│ ▼
2. Image is not ┌─────────────────┐ 5. The imgix CDN
cached at CDN, │ imgix CDN (edge │ caches the 600px wide
forward to imgix │nodes worldwide) │ variant and serves it
rendering cluster. └─────────────────┘ to the browser.
▲ │
│ │
│ │
│ ▼
1. Browser requests ┌─────────────────┐ 6. The browser
`dogs.png?w=600` │ User's Browser │ receives and renders
│ │ 600px wide `dogs.png`.
└─────────────────┘
Noi (pricejugaad.ae) utilizziamo i servizi imgix degli ultimi mesi. Inizialmente funzionava bene. ma nel tempo, il nostro team sta ottenendo troppi problemi come l'immagine non trovata ecc. il servizio clienti imgix non è affatto buono, ho inviato loro più di 10 mail, il tempo di rotazione è qualcosa come più di 10 giorni e il problema rimane non è stato ancora risolto. Ragazzi, per favore fatemi sapere se trovate altri servizi alternativi. Cloudinary è buono? – Swamy
Siamo passati a Cloudinary. finora, sta funzionando bene e anche il suo SEO friendly. – Swamy