我的问题是,当我使用viewer.js渲染pdf文件时,应用程序的内存使用量会随着每次渲染而增加。
我通过以下方式渲染我的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();
现在,内存使用量减少了一点,但并没有像之前分配的那么多。
有没有解决方法?
更新:
Pdf.js版本:1.6.210
pdf.js工作线程版本:1.6.210
documentPdf.destroy();
是正确的步骤。如果您不重新使用相同的pdfViewer来设置文档,请确保清理所有对旧文档的引用,包括pdfFindController。 - async5PDFJS.workerSrc = 'lib/pdfviewer/pdf.worker.js';
。我按照Giovazz89的建议删除并设置了变量。可能是viewer.js /pdf.js仍然有一些引用吗?实际上,它们应该被覆盖,并且我也在那个文件中销毁了文档。是否可能在一个文件中清除所有变量? - chocolate cake