@@ -19,6 +19,25 @@ let useRender;
1919const  cache  =  [ ] ; 
2020const  maxCached  =  6 ; 
2121
22+ var  loading_bar  =  document . getElementById ( "loading-bar" ) ; 
23+ var  loading_bar_container  =  document . getElementById ( "loading-bar-container" ) ; 
24+ 
25+ function  show_progress_bar ( )  { 
26+     loading_bar . style . display  =  "block" ; 
27+     loading_bar_container . style . display  =  "block" ; 
28+ } 
29+ 
30+ function  hide_progress_bar ( )  { 
31+     loading_bar . style . display  =  "none" ; 
32+     loading_bar_container . style . display  =  "none" ; 
33+ } 
34+ 
35+ function  set_progress ( value )  { 
36+     if ( value == 0 )  show_progress_bar ( ) ; 
37+     else  if ( value == 100 )  hide_progress_bar ( ) ; 
38+     else  loading_bar . style . width  =  value  +  "%" ; 
39+ } 
40+ 
2241function  maybeRenderNextPage ( )  { 
2342    if  ( renderPending )  { 
2443        pageRendering  =  false ; 
@@ -209,6 +228,14 @@ function loadDocument() {
209228        } 
210229    } 
211230
231+     loadingTask . onProgress  =  function ( data ) { 
232+         var  progress  =  Math . ceil ( ( data . loaded / data . total ) * 100 ) ; 
233+         console . log ( "Progress: "  +  progress ) ; 
234+         set_progress ( progress ) ; 
235+     } 
236+ 
237+     show_progress_bar ( ) ; 
238+ 
212239    loadingTask . promise . then ( function  ( newDoc )  { 
213240        pdfDoc  =  newDoc ; 
214241        channel . setNumPages ( pdfDoc . numPages ) ; 
@@ -218,7 +245,9 @@ function loadDocument() {
218245            console . log ( "getMetadata error: "  +  error ) ; 
219246        } ) ; 
220247        renderPage ( channel . getPage ( ) ,  false ,  false ) ; 
248+         hide_progress_bar ( ) ; 
221249    } ,  function  ( reason )  { 
250+         hide_progress_bar ( ) ; 
222251        console . error ( reason . name  +  ": "  +  reason . message ) ; 
223252    } ) ; 
224253} 
0 commit comments