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

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

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