2015-11-30 9 views
6

Webサーバー(Node.js)からHTML/JSONデータをダウンロードしてクライアント側のPDFに変換しようとしています。ユーザーのブラウザで処理して、私のサーバーがpdfs変換で過負荷にならないようにしたい。クライアントサイト(ブラウザ)PDF生成用のチャンクとパイプ大量データ

データがそれほど大きくない場合は問題ありません。レポート(サーバーからダウンロードされたデータ)は、200MB、300MBを合計することができ、ブラウザはそれほど多くのデータをメモリ内で扱うことができません。そのため、私は(おそらく)データをダウンロードしてチャンクに保存するか、PDFコンバータに直接パイプする必要があります。

しかし、私はそれの周りに私の頭を得ることはできません。 &ダウンロードしたデータを保存する/パイプするにはどうすればよいですか?私は周りを見回していくつかのライブラリを見つけましたが、それらを一緒に働かせる方法はまだありませんでした。何かご意見は?

+0

ブラウザに送信する必要があるデータのサイズはどれくらいですか? – guest271314

+0

50Kbから800MB、900MBになります。 – AFMeirelles

+0

チャンクレスのデータやクライアントへのデータ転送にチャンクレスポンスやウェブソケットを使用できませんでしたか?クライアント上の断片的なPDF生成はまだ困難です。 – lipp

答えて

0

自分のパソコンに800MBのPDFファイルを生成するアプリのコンシューマーを持つことはお勧めできません。

大きなレコードの場合はJSONを避けることにします。実際のレコードデータが25 MBを超える場合は、そのデータをバイナリ/圧縮形式で送信します。

このデータをすべて表示すると、私はPDFもやり方だとは思わない。私は最終消費者のための特別なオフラインビューアを作成します。おそらく、カスタムブラウザーのプラグインまたは拡張機能で、レポートを表示しているときにメモリに800MBを渡す必要はありません。

GoogleドライブやRackspace OpenCloudやAWSなどを使用することも考えられます。その理由は、転送の途中で何か問題が生じた場合でも、サーバーはすべて起動する必要があります。あなたがCDNの背後にある雲の中に捨てるならば、彼らは彼らが近くにいるサーバーから彼らが必要とする何度もダウンロードすることができます。また、サーバーはクライアントに送信するよりもはるかに高速にクラウドに送信できるので、サーバーのリソースが開いている時間が短くなります。

+0

興味深い見解です。なぜあなたはクライアント側でpdfを生成するのが悪い考えだと思いますか?処理コストをユーザーに押しつける方が良いと思っていたので、私のサーバーにはいくつかの処理要求があふれず、大きなサーバーは必要ありません。アプリケーションの全体的なコストを削減します。PDFが最良のフォーマットであるか否かに関しては、残念ながら、それはオプションではなく、ビジネス要件です。 – AFMeirelles

+0

私はできるだけ多くの仕事をクライアントに委任することが最善であることに同意します。私はそれが最終消費者のための最高の経験であることを疑う傾向があるので、私は強くその要件を戦うだろうと感じている。しかし、最適な解決策を決定するためには、生データが何であるか、消費者が生データからどのような情報を得ようとしているのかを正確に知る必要があります。たとえば、私は風力管理システムを構築しました。生データはブレード損傷/修復の詳細です。顧客はチャートや詳細を含むPDFレポートを取得しますが、レポートは1つのプロジェクト検査/修理にスコープされます。 – flcoder

関連する問題