Come posso ridurre la richiesta http mentre ho centinaia di immagini e migliaia di utenti [chiuso]

0

Ho bisogno di un'idea o di un concetto su come ridurre la richiesta http.
Condizioni:
1000s di utenti (android / iphone) attivi

per caricare 100 di piccole immagini (150kb / immagine)

Semplicemente assegnando ad ogni immagine un collegamento hardcoded, il server dovrà gestire le richieste http 100 * 1000. Come posso minimizzare le richieste?

    
posta Sujeet 23.12.2015 - 17:09
fonte

2 risposte

9

Non è possibile ridurre il numero di richieste. Non proprio. HTTP è una risposta per richiesta (e questo è uno dei motivi per HTTP / 2 ).

Ciò che puoi fare è diminuire il numero di richieste che colpiscono un determinato server.

Per prima cosa lo risolvo utilizzando un CDN per le tue immagini. Questo li renderà il problema del CDN, uno che sono pronti a gestire distribuendo le immagini su molti server dietro un sistema di bilanciamento del carico. Il modo più semplice per iniziare con una CDN è di ospitare immagini su S3, come descritto in Come configurare Amazon S3 come rete di Content Delivery

Allo stesso modo, se non è possibile utilizzare un servizio CDN per qualche motivo, è possibile aggiungerne uno aggiungendo un servizio di bilanciamento del carico di fronte al proprio sito e eliminando le richieste di immagini su un server progettato per servire contemporaneamente molte connessioni di lunga durata. NGINX è buono. Ancora una volta, non diminuirai le richieste, ma diminuirai le richieste che colpiscono il tuo server delle app e gli utenti otterranno le loro immagini più velocemente rispetto a quando dovessero aspettare in una coda di richieste su un server delle app.

BTW, 150k NON è una "immagine piccola". 100s di quelli per utente è un download da 15 MB. Se lo fai su un dispositivo mobile, avrai un sito lento e incazzato gli utenti, qualunque cosa tu faccia.

    
risposta data 23.12.2015 - 17:32
fonte
4

Un foglio sprite è una serie di immagini combinate in un'unica immagine. Ciò consente di ottenere il contenuto una sola volta e memorizzato nella cache dall'utente in un'unica richiesta.

Ci sono numerosi strumenti in grado di creare fogli sprite.

Punti - un generatore di fogli di sito basato su HTML5

Compass è un preprocessore CSS che supporta anche la creazione di sprite fogli.

Vedi questo jsfiddle per i dettagli di implementazione:

A causa delle grandi dimensioni delle tue singole immagini, il tuo foglio sprite sarà molto grande. Assicurati che le tue immagini siano ottimizzate per il Web e imposta correttamente le intestazioni di cache.

Vedi Nozioni fondamentali sui web di Google Developers per ottimizzazione dell'immagine per ulteriori informazioni sulla corretta ottimizzazione dell'immagine.

    
risposta data 23.12.2015 - 18:00
fonte

Leggi altre domande sui tag