loading the max 15 thumbnails first time

This commit is contained in:
notmasteryet 2011-06-29 23:18:27 -05:00
parent 29d0d8a8a9
commit 32f681cfcf

View File

@ -275,6 +275,12 @@ var PDFViewer = {
PDFViewer.url = url; PDFViewer.url = url;
document.title = url; document.title = url;
if (this.thumbsLoadingInterval) {
// cancel thumbs loading operations
clearInterval(this.thumbsLoadingInterval);
this.thumbsLoadingInterval = null;
}
var req = new XMLHttpRequest(); var req = new XMLHttpRequest();
req.open('GET', url); req.open('GET', url);
req.mozResponseType = req.responseType = 'arraybuffer'; req.mozResponseType = req.responseType = 'arraybuffer';
@ -291,6 +297,8 @@ var PDFViewer = {
req.send(null); req.send(null);
}, },
thumbsLoadingInterval: null,
readPDF: function(data) { readPDF: function(data) {
while (PDFViewer.element.hasChildNodes()) { while (PDFViewer.element.hasChildNodes()) {
PDFViewer.element.removeChild(PDFViewer.element.firstChild); PDFViewer.element.removeChild(PDFViewer.element.firstChild);
@ -312,12 +320,22 @@ var PDFViewer = {
PDFViewer.drawPage(1); PDFViewer.drawPage(1);
document.location.hash = 1; document.location.hash = 1;
setTimeout(function() { // slowly loading the thumbs (few per second)
for (var i = 1; i <= PDFViewer.numberOfPages; i++) { // first time we are loading more images than subsequent
PDFViewer.createThumbnail(i); var currentPageIndex = 1, imagesToLoad = 15;
PDFViewer.drawThumbnail(i); this.thumbsLoadingInterval = setInterval((function() {
while (imagesToLoad-- > 0) {
if (currentPageIndex > PDFViewer.numberOfPages) {
clearInterval(this.thumbsLoadingInterval);
this.thumbsLoadingInterval = null;
return;
} }
}, 500); PDFViewer.createThumbnail(currentPageIndex);
PDFViewer.drawThumbnail(currentPageIndex);
++currentPageIndex;
}
imagesToLoad = 3; // next time loading less images
}).bind(this), 500);
} }
PDFViewer.previousPageButton.className = (PDFViewer.pageNumber === 1) ? 'disabled' : ''; PDFViewer.previousPageButton.className = (PDFViewer.pageNumber === 1) ? 'disabled' : '';