Ridimensionamento dell'immagine lato client vs lato server

2

Quando carichi un sacco di immagini su un server, per ridurre al minimo lo spazio occupato dalle immagini, è meglio ridimensionare le immagini prima di inviarle al server o al momento di riceverle?

Mi sembra che ridimensionarli in JavaScript possa richiedere molto tempo per non ottenere molti guadagni. C'è qualche valore nel farlo sul lato client?

EDIT:

Il back-end è JAVA e il server avrà più utenti in attesa di caricare immagini e altri file.

    
posta Alex 15.05.2016 - 01:10
fonte

2 risposte

2

Da un punto di vista della velocità, il tuo computer è molto probabilmente più veloce del server che hai per il tuo sito Web / applicazione web, quindi avrebbe più senso ridimensionarlo sul client, che sul server.

Ho un'applicazione Java in cui cambio determinati pixel di colore in un altro colore e poi ridimensiono l'immagine, e quella operazione totale richiede circa 0,005 secondi per immagine da convertire.

TUTTAVIA:

Stai chiedendo di Javascript come client e ridimensionando lì. Non sono sicuro di quanto velocemente Javascript possa ridimensionare un'immagine, o quanto sia facile farlo, quindi potrebbe essere più veloce farlo sul server (dal tuo tag Java presumo che tu stia utilizzando un backend Java)?

TUTTAVIA ...:

A seconda di ciò che fa la tua app, potrebbe essere troppo lavoro da fare sul server (nel caso di molti utenti che tassano le risorse del server).

Direi che se vuoi mantenere il carico fuori dal server e il tuo server non ha molta potenza, lo farei sul client.

Se hai un server in grado di gestire un carico di grandi dimensioni (se necessario) e ha abbastanza potenza per eseguire molte conversioni, fallo sul server.

Nel complesso, la risposta si riduce a provarlo tu stesso, testare il tuo ambiente e vedere cosa funziona meglio per te.

Potresti scoprire che puoi caricare un milione di immagini, da 10 mila utenti diversi contemporaneamente, e il tuo server se la ride.

Oppure scopri di caricare 100 immagini da solo e il tuo server inizia a piangere.

Ne hai bisogno per molti utenti? Solo te stesso? Non hai fornito informazioni sufficienti per dirlo, quindi, una volta fatto, aggiornerò la mia risposta ...

Spero che questo aiuti.

Informazioni aggiuntive.

Molto probabilmente quando si invia l'immagine al server per il ridimensionamento, sarà necessario

  1. prima salva l'immagine, leggi l'immagine sul server,

  2. ridimensiona,

    quindi

  3. sovrascrittura,

    o

  4. cancella il vecchio

  5. salva il nuovo.

    Questo potrebbe richiedere del tempo, a meno che tu non possa inviare i dati come stream e leggerli sul tuo server, ma non sono sicuro di quella capacità in Javascript.

se è tutto fatto sul client, quindi salverà l'immagine solo una volta.

    
risposta data 15.05.2016 - 02:38
fonte
3

Se lo spazio su disco è l'unico vincolo, non importa quale fine ridimensiona l'immagine. Il client potrebbe farlo leggermente più lento del server o il server potrebbe sovraccaricarsi con i client che inviano molte immagini, quindi è un giudizio che puoi fare in base ai modelli di utilizzo previsti.

Tuttavia, c'è una buona ragione per ridimensionare il client: la trasmissione di rete. Se stai caricando un'immagine da fotocamera multi-megabyte che verrà ridimensionata a una miniatura (per esempio, ad esempio), il ridimensionamento sul client sarà più rapido e più efficiente - il tempo necessario per trasferire l'immagine grande è potrebbe essere molto più grande di quello richiesto per ridimensionare e trasferire i pochi Kb risultanti dall'immagine ridimensionata anche se l'operazione di ridimensionamento potrebbe essere più veloce sul server.

    
risposta data 16.05.2016 - 12:30
fonte

Leggi altre domande sui tag