2015-11-30 15 views
6

Sto provando a scaricare i dati HTML/JSON da un server web (Node.js) e convertirli in PDF sul lato client. Desidero eseguire l'elaborazione sul browser dell'utente in modo che il mio server non si sovraccarichi di conversioni in formato PDF.Chunk e pipe grandi quantità di dati per la generazione di PDF del sito client (browser)

Non dovrebbe essere un problema se i dati non erano così grandi. Un report (i dati scaricati dal server) può sommare 200, 300 MB ei browser non possono gestire tanti dati in memoria. Per questo motivo, ho (probabilmente) bisogno di scaricare e salvare i dati in blocchi, o di collegarli direttamente al convertitore PDF.

Ma non riesco a capirlo. Come posso dividere & store/pipe i dati scaricati? Mi sono guardato intorno e ho trovato diverse librerie, ma non ho ancora capito come farle funzionare insieme. qualche idea?

+0

Qual è la dimensione richiesta di dati che devono essere inviati al browser? – guest271314

+0

Va da 50Kb a 800MB, 900MB. – AFMeirelles

+0

non è possibile utilizzare le risposte chunked o websockets per il trasferimento di dati a bit nel client? la generazione di PDF a tratti sul client è comunque impegnativa. – lipp

risposta

0

Non penso che sia una buona idea avere consumatori di app che generano file PDF da 800MB sui loro computer.

Eviterei JSON in caso di record di grandi dimensioni. Se sono presenti oltre 25 MB di dati di record effettivi, invierei tali dati in formato binario/compresso.

Per quanto riguarda la visualizzazione di tutti questi dati, non penso nemmeno che il PDF sia la strada da percorrere. Vorrei creare uno speciale visualizzatore offline per il consumatore finale. Forse un plug-in o estensione del browser personalizzato in modo che non debbano gettare 800 MB in memoria quando visualizzano un rapporto.

Un'altra considerazione potrebbe essere l'utilizzo di Google Drive o Rackspace OpenCloud o AWS o qualcosa del genere, ragion per cui, se qualcosa va storto sul consumatore a metà del percorso, il server dovrà ricominciare tutto da capo. Se lo lanci nella cloud dietro un CDN, possono scaricarlo tutte le volte che ne hanno bisogno, da un server vicino a loro. Inoltre, il tuo server dovrebbe essere in grado di inviarlo al cloud molto più velocemente che inviarlo al client, quindi meno tempo in cui il tuo server ha risorse legate.

+0

Punto di vista interessante. Puoi dirmi di più perché pensi che sia una cattiva idea generare il pdf sul lato client? Stavo pensando che sarebbe meglio spingere il costo di elaborazione per l'utente, quindi il mio server non viene allagato da diverse richieste di elaborazione - e non ho bisogno di un server più grande. Riduce il costo complessivo dell'applicazione.Dal momento che il PDF è il formato migliore o no, purtroppo non è un'opzione, è un requisito aziendale. – AFMeirelles

+0

Concordo sul fatto che delegare quanto più lavoro possibile ai clienti sia il migliore. Ho la sensazione che combatterei con forza questa richiesta, anche se tendo a dubitare che sarebbe la migliore esperienza per il consumatore finale. Ma per determinare una soluzione ottimale, dovrei sapere esattamente quali sono i dati grezzi e esattamente quali informazioni si suppone che il consumatore ottenga dai dati grezzi. Ad esempio, ho costruito un sistema di gestione del parco eolico. I dati grezzi sono danni alla lama/dettagli di riparazione. Il cliente ottiene report PDF con grafici e dettagli, ma i report hanno lo scopo di eseguire un'ispezione/riparazione di un progetto. – flcoder

Problemi correlati