mirror of
https://github.com/mozilla/pdf.js.git
synced 2025-04-22 16:18:08 +02:00
Update loading bar during onprogress of range requests
This commit is contained in:
parent
8e4d9e9aa0
commit
c5084d9e8a
4 changed files with 48 additions and 7 deletions
|
@ -561,13 +561,19 @@ var WorkerTransport = (function WorkerTransportClosure() {
|
|||
|
||||
var pdfDataRangeTransport = this.pdfDataRangeTransport;
|
||||
if (pdfDataRangeTransport) {
|
||||
pdfDataRangeTransport.addListener(function(begin, chunk) {
|
||||
pdfDataRangeTransport.addRangeListener(function(begin, chunk) {
|
||||
messageHandler.send('OnDataRange', {
|
||||
begin: begin,
|
||||
chunk: chunk
|
||||
});
|
||||
});
|
||||
|
||||
pdfDataRangeTransport.addProgressListener(function(loaded) {
|
||||
messageHandler.send('OnDataProgress', {
|
||||
loaded: loaded
|
||||
});
|
||||
});
|
||||
|
||||
messageHandler.on('RequestDataRange',
|
||||
function transportDataRange(data) {
|
||||
pdfDataRangeTransport.requestDataRange(data.begin, data.end);
|
||||
|
|
|
@ -194,6 +194,7 @@ var ChunkedStream = (function ChunkedStreamClosure() {
|
|||
var ChunkedStreamManager = (function ChunkedStreamManagerClosure() {
|
||||
|
||||
function ChunkedStreamManager(length, chunkSize, url, args) {
|
||||
var self = this;
|
||||
this.stream = new ChunkedStream(length, chunkSize);
|
||||
this.length = length;
|
||||
this.chunkSize = chunkSize;
|
||||
|
@ -203,6 +204,7 @@ var ChunkedStreamManager = (function ChunkedStreamManagerClosure() {
|
|||
|
||||
if (args.chunkedViewerLoading) {
|
||||
msgHandler.on('OnDataRange', this.onReceiveData.bind(this));
|
||||
msgHandler.on('OnDataProgress', this.onProgress.bind(this));
|
||||
this.sendRequest = function ChunkedStreamManager_sendRequest(begin, end) {
|
||||
msgHandler.send('RequestDataRange', { begin: begin, end: end });
|
||||
};
|
||||
|
@ -219,10 +221,10 @@ var ChunkedStreamManager = (function ChunkedStreamManagerClosure() {
|
|||
getXhr: getXhr,
|
||||
httpHeaders: args.httpHeaders
|
||||
});
|
||||
var self = this;
|
||||
this.sendRequest = function ChunkedStreamManager_sendRequest(begin, end) {
|
||||
this.networkManager.requestRange(begin, end, {
|
||||
onDone: this.onReceiveData.bind(this),
|
||||
onProgress: this.onProgress.bind(this)
|
||||
});
|
||||
};
|
||||
}
|
||||
|
@ -347,6 +349,15 @@ var ChunkedStreamManager = (function ChunkedStreamManagerClosure() {
|
|||
return groupedChunks;
|
||||
},
|
||||
|
||||
onProgress: function ChunkedStreamManager_onProgress(args) {
|
||||
var bytesLoaded = this.stream.numChunksLoaded * this.chunkSize +
|
||||
args.loaded;
|
||||
this.msgHandler.send('DocProgress', {
|
||||
loaded: bytesLoaded,
|
||||
total: this.length
|
||||
});
|
||||
},
|
||||
|
||||
onReceiveData: function ChunkedStreamManager_onReceiveData(args) {
|
||||
var chunk = args.chunk;
|
||||
var begin = args.begin;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue