【问题标题】:How to destroy PDFJS object?如何销毁 PDFJS 对象?
【发布时间】:2015-02-01 22:53:34
【问题描述】:

我需要图书库的功能以及我使用过的功能:

  • Turn.js,用于翻书效果(仅第 3 版有效,第 4 版无法使用,如果有人与第 4 版 turn.js 有类似的功能,则请分享您的代码)。

  • pdf.js,在客户端将 PDF 转换为 HTML

This 是我关注的参考链接。

我已经修改了一个动态使用该脚本的函数,它将 PDF 的路径添加到该函数中,并根据该链接,书籍在弹出窗口中打开。

这里是 JavaScript 函数:

function display_book(path){

    var url = path;
    PDFJS.disableWorker = false;

    PDFJS.getDocument(url).then(function(pdfDoc) {
        numberOfPages = pdfDoc.numPages;
        pdf = pdfDoc;
        $('#book').turn.pages = numberOfPages;

        $('#book').turn({acceleration: false,
            pages: numberOfPages,
            elevation: 50,
            gradients: !$.isTouch,
            // display: 'single',
            when: {
                turning: function(e, page, view) {

                    // Gets the range of pages that the book needs right now
                    var range = $(this).turn('range', page);

                    // Check if each page is within the book
                    for (page = range[0]; page<=range[1]; page++) {
                        addPage(page, $(this));
                        //renderPage(page);
                    };

                },

                turned: function(e, page) {
                    $('#page-number').val(page);

                    if (firstPagesRendered) {
                        var range = $(this).turn('range', page);
                        for (page = range[0]; page<=range[1]; page++) {
                            if (!rendered[page]) {
                                renderPage(page);
                                rendered[page] = true;
                            }
                        };
                    }
                }

            }
        });


        $("button.close").click(function(){
            //code for destroy pdfjs object
            $(".modal").css({"display":"none"});
        });
    });
}

在那个弹出关闭事件中,我想销毁 PDFJS 的对象(以释放内存)。在此代码中,使用了第 3 版 turn.js,如果我用第 4 版替换该版本,则代码将不起作用。

【问题讨论】:

    标签: javascript jquery pdf jquery-plugins


    【解决方案1】:

    您只需要在pdfDoc 实例上调用destroy

    在您的代码示例中,pdfDoc 似乎已分配给全局变量 pdf。所以,这应该做你想做的:

    pdf.destroy();
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-07-09
      • 2012-05-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-06-29
      • 2012-02-06
      • 2017-01-11
      相关资源
      最近更新 更多