New version: show loading icon until page renders

This commit is contained in:
Artur Adib 2012-01-31 16:49:48 -05:00
parent 47f24cd27b
commit 5ef79dca14
2 changed files with 9 additions and 16 deletions

View File

@ -237,7 +237,7 @@ canvas {
.loadingIcon {
position: absolute;
display: none;
display: block;
left: 0;
top: 0;
right: 0;
@ -245,8 +245,8 @@ canvas {
background: url('images/loading-icon.gif') center no-repeat; */
}
.loadingIcon.show {
display: block;
.loadingIcon.hide {
display: none;
}
.textLayer {

View File

@ -618,6 +618,10 @@ var PageView = function pageView(container, content, id, pageWidth, pageHeight,
div.removeAttribute('data-loaded');
delete this.canvas;
this.loadingIconDiv = document.createElement('div');
this.loadingIconDiv.className = 'loadingIcon';
div.appendChild(this.loadingIconDiv);
};
function setupAnnotations(content, scale) {
@ -774,7 +778,7 @@ var PageView = function pageView(container, content, id, pageWidth, pageHeight,
};
this.drawingRequired = function() {
return !div.hasChildNodes();
return !div.querySelector('canvas');
};
this.draw = function pageviewDraw(callback) {
@ -790,10 +794,6 @@ var PageView = function pageView(container, content, id, pageWidth, pageHeight,
div.appendChild(canvas);
this.canvas = canvas;
var loadingIconDiv = document.createElement('div');
loadingIconDiv.className = 'loadingIcon';
div.appendChild(loadingIconDiv);
var textLayerDiv = null;
if (!PDFJS.disableTextLayer) {
textLayerDiv = document.createElement('div');
@ -816,16 +816,9 @@ var PageView = function pageView(container, content, id, pageWidth, pageHeight,
// Rendering area
var self = this;
// Display loading icon if page hasn't finished rendering after XXXX ms
var loadingTimer = setTimeout(function loadingTimerCallback() {
loadingIconDiv.classList.add('show');
}, 1000);
stats.begin = Date.now();
this.content.startRendering(ctx, function pageViewDrawCallback(error) {
clearTimeout(loadingTimer);
loadingIconDiv.classList.remove('show');
self.loadingIconDiv.classList.add('hide');
if (error)
PDFView.error('An error occurred while rendering the page.', error);