1

我正在使用 pdf.js 开发一个 C#/ASP.NET 翻书项目。当我在 Chrome 中启动具有空缓存的应用程序时,我加载一次我的 pdf 文件并且一切都很好,但是当我刷新页面而不清除它时,pdf 完全下载了 5 次,所以大小从 7,5Mo 到37,5钼。

我检查了 IE 11、Edge 和 FireFox,我没有遇到任何问题。我已经尝试按照这些说明禁用缓存,但它并没有解决我的问题。

这是我调用我的文件的地方:

function loadBook() {
    PDFJS.disableWorker = true;
    PDFJS.workerSrc = '../../Scripts/pdf.worker.js';

    $(document).ready(function () {
        var file = "http://localhost:51790/pdf/newspaper.pdf";

        PDFJS.getDocument(file).then(function getPdf(pdf) {
            var pagesNumber = pdf.numPages;

            //Adding canvas to the html
            for (var i = 1; i <= pagesNumber; i++) {
                $('.flipbook').html($('.flipbook').html() + '<div><canvas id="page' + i + '"></canvas></div>');
            }

            //Adding and rendering pages
            for (var i = 1; i <= pagesNumber; i++) {
                renderPage(i, document.getElementById('page' + i), pdf);
            }

            //Creating flipbook
            loadJournal();
        });
    })
}

这是我的渲染功能:

function renderPage(numero, pageElement, pdf) {
    pdf.getPage(numero).then(function (page) {
        var scale = 1;
        var viewport = page.getViewport(scale);
        pageElement.width = viewport.width;
        pageElement.height = viewport.height;

        var renderContext = {
            canvasContext: pageElement.getContext('2d'),
            viewport: viewport
        };
        page.render(renderContext);
    });
}

我想了解它为什么会有这样的反应。

4

0 回答 0