私の問題は、viewer.jsでpdfファイルをレンダリングするたびにアプリケーションのメモリ使用量が増加することです。viewer.js/pdf.js:pdfがレンダリングされるたびにメモリ使用量が増加する
私は私のPDFファイルをこのようにレンダリング:
container = document.getElementById('viewerContainer');
viewer = document.getElementById('viewer');
pdfViewer = new PDFViewer({
container: container,
viewer: viewer
});
$scope.pdfFindController = new PDFFindController({
pdfViewer: pdfViewer
});
pdfViewer.setFindController($scope.pdfFindController);
container.addEventListener('pagesinit', function() {
pdfViewer.currentScaleValue = 'page-width';
});
PDFJS.getDocument($scope.getPageLink(pdf)).then(function (pdfDocument) {
documentPdf = pdfDocument;
pdfViewer.setDocument(pdfDocument);
});
私は別のビューでファイルをレンダリングします。以前のビューに戻って別のファイルを開くと、メモリ使用量が20MB増えます。
私はこの試みた:documentPdf.destroy();
今、メモリ使用量が少し減少したが、それは以前に割り当てられていたではない限り。
解決方法はありますか?
UPDATE:
Pdf.jsバージョン:1.6.210
pdf.jsワーカーバージョン:1.6.210
は(一部のブラウザ)があることを行うために彼らのツールを使用してGCに強制することができますガベージコレクションが実行された後、あなたがメモリを測定していることを確認してくださいそれが推奨されます。同じPDFWorkerを使用するには、同じページで複数のドキュメントを使用しようとしていますか? 'documentPdf.destroy();は正しいステップです。setDocumentに同じpdfViewerを再使用しない場合は、pdfFindControllerを含む古いものへのすべての参照をクリーンアップしてください。 – async5
pdfjsプロジェクトから利用可能なangularjsパッケージはありません。完全な例が提供されていない場合や、使用されているパッケージ(ベンダー)が記載されていない場合は、伝えたり再現するのは難しいです。 – async5
Xcodeを使用してメモリ使用量を確認します。私はiOSのためにそれを構築するからです。 PDFWorkerは同じでなければなりません。私は 'PDFJS.workerSrc = 'lib/pdfviewer/pdf.worker.js';'のたびにリファレンスを設定しました。 Giovazz89のような変数を削除して設定しました。 viewer.js /pdf.jsにはまだいくつかの参考文献がありますか?実際には、それらを上書きする必要があり、そのファイル内の文書も破棄します。 1つのファイル内のすべての変数をクリアすることは可能ですか? –