2014-12-04 4 views
4

나는 책 라이브러리 기능이 필요하고 그것을 위해 내가 사용하고 있습니다 : 플립 북 효과 (작업, 4 릴리스가 작업뿐만 아니라 3 릴리스에 사용되는PDFJS 개체를 파괴하는 방법?

  • Turn.js, 누군가가있는 경우 turn.js의 네 번째 릴리스와 유사한 기능을 제공하고 코드를 공유하십시오.) 클라이언트 측

This에 HTML로 PDF로 변환

  • pdf.js, 나는 준수했는지, 참조 링크입니다.

    해당 스크립트를 동적으로 사용하기 위해 하나의 함수를 수정했습니다.이 함수는 PDF 경로를 해당 함수에 추가하고 해당 링크에 따라 팝업으로 열립니다.

    그 팝업 close 이벤트에
    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의 오브젝트를 파괴하려는 :

    는 여기에 대한 자바 스크립트 기능입니다. 이 코드에서는 turn.js 세 번째 릴리스 버전이 사용되며,이 버전을 네 번째 릴리스로 바꾸면 코드가 작동하지 않습니다.

  • 답변

    4

    pdfDoc 인스턴스에서 destroy으로 전화하면됩니다.

    코드 샘플에서 pdfDoc이 글로벌 변수 pdf에 할당 된 것처럼 보입니다. 따라서 원하는 작업을 수행 할 수 있습니다.

    pdf.destroy();