mirror of
https://github.com/mozilla/pdf.js.git
synced 2025-04-20 15:18:08 +02:00
Merge pull request #3124 from mduan/issue3118-1
Update loading bar during onprogress of range requests
This commit is contained in:
commit
a081c2d0f1
4 changed files with 56 additions and 8 deletions
|
@ -110,6 +110,7 @@ var ProgressBar = (function ProgressBarClosure() {
|
|||
|
||||
// Initialize heights
|
||||
this.div.style.height = this.height + this.units;
|
||||
this.percent = 0;
|
||||
}
|
||||
|
||||
ProgressBar.prototype = {
|
||||
|
@ -942,15 +943,30 @@ var PDFView = {
|
|||
}
|
||||
|
||||
var pdfDataRangeTransport = {
|
||||
listeners: [],
|
||||
rangeListeners: [],
|
||||
progressListeners: [],
|
||||
|
||||
addListener: function PdfDataRangeTransport_addListener(listener) {
|
||||
this.listeners.push(listener);
|
||||
addRangeListener: function PdfDataRangeTransport_addRangeListener(
|
||||
listener) {
|
||||
this.rangeListeners.push(listener);
|
||||
},
|
||||
|
||||
addProgressListener: function PdfDataRangeTransport_addProgressListener(
|
||||
listener) {
|
||||
this.progressListeners.push(listener);
|
||||
},
|
||||
|
||||
onDataRange: function PdfDataRangeTransport_onDataRange(begin, chunk) {
|
||||
for (var i = 0, n = this.listeners.length; i < n; ++i) {
|
||||
this.listeners[i](begin, chunk);
|
||||
var listeners = this.rangeListeners;
|
||||
for (var i = 0, n = listeners.length; i < n; ++i) {
|
||||
listeners[i](begin, chunk);
|
||||
}
|
||||
},
|
||||
|
||||
onDataProgress: function PdfDataRangeTransport_onDataProgress(loaded) {
|
||||
var listeners = this.progressListeners;
|
||||
for (var i = 0, n = listeners.length; i < n; ++i) {
|
||||
listeners[i](loaded);
|
||||
}
|
||||
},
|
||||
|
||||
|
@ -974,6 +990,9 @@ var PDFView = {
|
|||
case 'range':
|
||||
pdfDataRangeTransport.onDataRange(args.begin, args.chunk);
|
||||
break;
|
||||
case 'rangeProgress':
|
||||
pdfDataRangeTransport.onDataProgress(args.loaded);
|
||||
break;
|
||||
case 'progress':
|
||||
PDFView.progress(args.loaded / args.total);
|
||||
break;
|
||||
|
@ -1324,7 +1343,13 @@ var PDFView = {
|
|||
|
||||
progress: function pdfViewProgress(level) {
|
||||
var percent = Math.round(level * 100);
|
||||
PDFView.loadingBar.percent = percent;
|
||||
// When we transition from full request to range requests, it's possible
|
||||
// that we discard some of the loaded data. This can cause the loading
|
||||
// bar to move backwards. So prevent this by only updating the bar if it
|
||||
// increases.
|
||||
if (percent > PDFView.loadingBar.percent) {
|
||||
PDFView.loadingBar.percent = percent;
|
||||
}
|
||||
},
|
||||
|
||||
load: function pdfViewLoad(pdfDocument, scale) {
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue