2015-11-30 78 views
6

我試圖從Web服務器(Node.js)下載HTML/JSON數據並將其轉換爲客戶端上的PDF。我希望在用戶的瀏覽器上進行處理,以便我的服務器不會因pdf轉換而過載。塊和管道客戶端網站(瀏覽器)PDF生成大量的數據

如果數據不是那麼大,這應該不成問題。報告(從服務器下載的數據)可以總計200,300MB,瀏覽器無法在內存中處理太多數據。因此,我(可能)需要下載並保存數據塊,或者直接將其輸入到PDF轉換器。

但是我無法理解它。如何分割& store/pipe下載的數據?我一直在環顧四周,發現了幾個圖書館,但我還沒有弄清楚如何讓它們一起工作。有什麼想法嗎?

+0

應該發送給瀏覽器的數據所需的大小是多少? – guest271314

+0

它從50Kb到800MB,900MB。 – AFMeirelles

+0

難道你不可以使用分塊響應或websocket進行分塊數據傳輸到客戶端嗎?儘管客戶端上的分段pdf仍具有挑戰性。 – lipp

回答

0

我認爲讓應用程序使用者在其計算機上生成800MB PDF文件不是一個好主意。

我會在大記錄的情況下避免JSON。如果有超過25 MB的實際記錄數據,我會以二進制/壓縮格式發送這些數據。

至於查看所有這些數據,我甚至不認爲PDF是要走的路。我會爲最終用戶創建一個特殊的離線查看器。也許是一個自定義的瀏覽器插件或擴展,以便他們在查看報告時不必在內存中放置800MB。

另一個需要考慮的可能是使用Google Drive或Rackspace OpenCloud或AWS或其他性質的原因,如果在轉移過程中消費者的一端出現問題,您的服務器將不得不從頭開始。如果你把它放在CDN後面的雲中,那麼他們可以從它們附近的服務器上下載它,但無論它需要多少次。此外,您的服務器應該能夠將其發送到雲端的速度比將其發送到客戶端的速度快得多,這樣您的服務器就可以將資源連接到打開狀態。

+0

有趣的觀點。你能告訴我更多爲什麼你認爲在客戶端生成PDF是一個壞主意?我認爲把處理成本推給用戶會更好,所以我的服務器不會被多個處理請求淹沒 - 而且我不需要更大的服務器。它降低了應用程序的總體成本。至於PDF是否是最好的格式,不幸的是它不是一個選項,這是一個業務需求。 – AFMeirelles

+0

我同意將盡可能多的工作委託給客戶是最好的。我有一種感覺,我會強烈反對這一要求,因爲我懷疑這是最終消費者的最佳體驗。但爲了確定最佳解決方案,我需要確切知道原始數據是什麼,以及消費者應該從原始數據中獲得什麼信息。例如,我建立了一個風場管理系統。原始數據是刀片損壞/維修細節。客戶通過圖表和詳細信息獲取PDF報告,但報告僅限於一個項目檢查/維修。 – flcoder

相關問題