Merge pull request #686 from vingtetun/offscreen

Make firstrun looks faster
This commit is contained in:
Chris Jones 2011-10-20 16:08:40 -07:00
commit 27ad798d86
2 changed files with 20 additions and 8 deletions

View File

@ -215,6 +215,7 @@ canvas {
box-shadow: 0px 4px 10px #000; box-shadow: 0px 4px 10px #000;
-moz-box-shadow: 0px 4px 10px #000; -moz-box-shadow: 0px 4px 10px #000;
-webkit-box-shadow: 0px 4px 10px #000; -webkit-box-shadow: 0px 4px 10px #000;
background-color: white;
} }
.page > a { .page > a {

View File

@ -38,10 +38,10 @@ var PDFView = {
var pages = this.pages; var pages = this.pages;
for (var i = 0; i < pages.length; i++) for (var i = 0; i < pages.length; i++)
pages[i].update(val * kCssUnits); pages[i].update(val * kCssUnits);
this.currentScale = val;
if (this.currentScale != val)
this.pages[this.page - 1].scrollIntoView(); this.pages[this.page - 1].scrollIntoView();
this.pages[this.page - 1].draw(); this.currentScale = val;
var event = document.createEvent('UIEvents'); var event = document.createEvent('UIEvents');
event.initUIEvent('scalechange', false, false, window, 0); event.initUIEvent('scalechange', false, false, window, 0);
@ -107,6 +107,10 @@ var PDFView = {
if (updateViewarea.inProgress) if (updateViewarea.inProgress)
return; return;
// Avoid scrolling the first page during loading
if (this.loading && val == 1)
return;
pages[val - 1].scrollIntoView(); pages[val - 1].scrollIntoView();
}, },
@ -117,17 +121,20 @@ var PDFView = {
open: function pdfViewOpen(url, scale) { open: function pdfViewOpen(url, scale) {
document.title = this.url = url; document.title = this.url = url;
var self = this;
getPdf( getPdf(
{ {
url: url, url: url,
progress: function getPdfProgress(evt) { progress: function getPdfProgress(evt) {
if (evt.lengthComputable) if (evt.lengthComputable)
PDFView.progress(evt.loaded / evt.total); self.progress(evt.loaded / evt.total);
}, },
error: PDFView.error error: self.error
}, },
function getPdfLoad(data) { function getPdfLoad(data) {
PDFView.load(data, scale); self.loading = true;
self.load(data, scale);
self.loading = false;
}); });
}, },
@ -267,7 +274,7 @@ var PDFView = {
var currentPage = this.pages[pageNumber - 1]; var currentPage = this.pages[pageNumber - 1];
currentPage.scrollIntoView(dest); currentPage.scrollIntoView(dest);
} else } else
this.page = page; // simple page this.page = params.page; // simple page
return; return;
} }
} else if (/^\d+$/.test(hash)) // page number } else if (/^\d+$/.test(hash)) // page number
@ -466,11 +473,11 @@ var PageView = function pageView(container, content, id, pageWidth, pageHeight,
var canvas = document.createElement('canvas'); var canvas = document.createElement('canvas');
canvas.id = 'page' + this.id; canvas.id = 'page' + this.id;
canvas.mozOpaque = true; canvas.mozOpaque = true;
div.appendChild(canvas);
var scale = this.scale; var scale = this.scale;
canvas.width = pageWidth * scale; canvas.width = pageWidth * scale;
canvas.height = pageHeight * scale; canvas.height = pageHeight * scale;
div.appendChild(canvas);
var ctx = canvas.getContext('2d'); var ctx = canvas.getContext('2d');
ctx.save(); ctx.save();
@ -598,6 +605,10 @@ window.addEventListener('load', function webViewerLoad(evt) {
document.getElementById('fileInput').value = null; document.getElementById('fileInput').value = null;
}, true); }, true);
window.addEventListener('unload', function webViewerUnload(evt) {
window.scrollTo(0, 0);
}, true);
function updateViewarea() { function updateViewarea() {
var visiblePages = PDFView.getVisiblePages(); var visiblePages = PDFView.getVisiblePages();
for (var i = 0; i < visiblePages.length; i++) { for (var i = 0; i < visiblePages.length; i++) {